селен вебдрайвер - PullRequest
       6

селен вебдрайвер

3 голосов
/ 14 сентября 2011

Я работаю в Selen Webdriver. У меня есть несколько текстовых полей, чьи идентификаторы будут меняться все время.

например, id=ctl00_SPWebPartManager1_g_ad39b78c_a97b_4431_aedb_c9e6270134c6_ctl00_wizNotification_ucChangeData_txtAddress1

но последняя часть остается неизменной всегда. в приведенном выше примере wizNotification_ucChangeData_txtAddress1 я пытался перейти с xpath, как:

//input[contains(@id,'txtAddress1')
//input[ends-with(@id,'txtAddress1')]

но во время работы не смог определить текстовую область.

Любые предложения, пожалуйста. Я тоже пробовал с: //input[ends-with(@id,'wizNotification_ucChangeData_txtAddress1')], но без удачи: (

Ответы [ 3 ]

3 голосов
/ 14 сентября 2011

Xpath медленны в IE, потому что IE не имеет собственного движка Xpath. Вместо этого вы должны использовать CSS Selector для лучшей производительности. Что касается вашего случая, вы можете попробовать ниже селектор CSS, который находит вход, для которого идентификатор заканчивается на txtAddress1

E [foo $ = "bar"] элемент E, значение атрибута которого "foo" заканчивается точно строкой "bar"

WebElement element = driver.findElement(By.cssSelector("input[id$='txtAddress1']"));
1 голос
/ 14 сентября 2011

Попробуйте:

. // вход [@id [содержит (., 'TxtAddress1')]]

Будьте осторожны, если текстовая область не будет определена как входная.

0 голосов
/ 26 января 2013

В случае webelements с динамическими идентификаторами, вместо перехода к Xpath с идентификаторами, мы можем пойти другим путем поиска элементов, таких как «по тэгу», CSSlocator, .. это сработало для меня.

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