2017-02-21 42 views
0

3 согласующие узлы .. все имеют тот же исходный код ..hence это не удается //img[(@src='/PHYLINSPortlet/images/override-0.gif')]Как найти относительный путь к уникальному коду?

<img id="_PHYLINSPortlet_WAR_PHYLINSPortlet_INSTANCE_o3P5_:form_PolicyContent_UI2:Messages:0:j_id1885:0:j_id897" class="null" alt="" src="/PHYLINSPortlet/images/override-0.gif" style="border:0px"/> 

Это xpath динамической кнопки:

enter image description here

мне нужно нажать на все кнопки.

, что я сделал это -

List<WebElement> buttons = driver.findElements(By.xpath("//img[(@src='/PHYLINSPortlet/images/override-0.gif')]")); 
    for(WebElement button : buttons) { 
     button.click(); 
    } 
+0

Как найти уникальный XPath – heardm

+0

'id' атрибут должен быть уникальным для каждого элемента. Проверьте, является ли он динамическим (изменяется каждый раз после обновления страницы) или нет – Andersson

+0

он одинаковый для всех трех кнопок. Я добавил изображение – heardm

ответ

0

Это немного сложно обеспечить правильное решение вашей проблемы, как вы не поделились своим HTML.

Как я вижу изображение в вопросе. У вас есть 3 одинаковые типы изображения и хотите, чтобы нажать на любое конкретное изображение позволяет сказать, что второе изображение, то вам нужно использовать xpath методы, как following-sibling или preceding-sibling, чтобы сделать ваш xpath уникальный

Пример: -

Предположим, у вас есть уникальный столбец в вашей таблице (идентификатор правила) или вы хотите щелкнуть определенное изображение. Идентификатор правила Val01014 изображения

Используйте методы как следующие xpath -

//img[@src='/PHYLINSPortlet/images/override-0.gif']/preceding-sibling::td[text()='Val_01014'] 

ИЛИ

//img[@src='/PHYLINSPortlet/images/override-0.gif']/following-sibling::td[text()='Val_01014']