Как использовать относительный Xpath в веб-драйвере Selenium в C # с VS - PullRequest
0 голосов
/ 01 декабря 2018

Я работаю над проектом автоматизации с нашим сайтом.Есть поле ввода, мне нужно передать ему сообщение, но абсолютный путь Xpath всегда меняется, поэтому я не могу его использовать.

Относительный Xpath, подобный этому

//*[@id="_ariaId_129"]/div/div/div[1]/div/span/div/form/input

Абсолютный Xpath, подобный этому

/html/body/div[13]/div/div[2]/div[3]/div/div/div[1]/div/span/div/form/input

Если я использую его внутри VS, он всегда выдает мне сообщение об ошибкев VS я использовал относительную копию Xpath из Chrome.

Error message of relative Xpath in VB

Если я использую Absolute Xpath, он работает, но, как я уже сказал, он может измениться следующимвремя, когда я проверяю его.

Может ли кто-нибудь помочь мне понять, какой формат подходит для использования относительного Xpath в VS?Я попытался написать, как показано ниже, ни один из них не работает.Я попытался изменить "" на "в Xpath, без ошибок в VS, но не могу найти элемент.

[FindsBy(How = How.XPath, Using = "//*[@id="_ariaId_129"]/div/div/div[1]/div/span/div/form/input")]

или [FindsBy(How = How.XPath, Using = "//input[@id='_ariaId_129']")]

1 Ответ

0 голосов
/ 19 декабря 2018

Предполагая, что под родительским элементом есть только один вход (тот, у которого есть Id), вы можете просто использовать:

// * [@ id = "_ ariaId_129"] // input

Если это не так, вам нужно найти идентификатор ближе к тому, что вы хотите выбрать, или добавить его непосредственно к входу, с которым вы хотите взаимодействовать.

Для скриншота сваша ошибка, потому что у вас есть двойные кавычки, которые не экранированы.Вам нужно сделать что-то вроде этого:

"// * [@ id = \" _ ariaId_129 \ "] // input"

OR

"// *[@id = '_ ariaId_129'] // ввод "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...