Мне нужно выбрать отдельный динамический путь xpath в селене между 2 одинаковыми кусочками xml (Платья). Мне нужно создать динамический xpath для второго значения, которое нажимает на саму кнопку. Я пробовал: //a[@title = 'Dresses'][@class = 'sf-with-ul'], который выбирает и изображение, и кнопку.
//a[@title = 'Dresses'][@class = 'sf-with-ul']
Вот код:
<li class="sfHoverForce" xpath="1"> <a href="http://automationpractice.com/index.php?id_category=8&controller=category" title="Dresses" class="sf-with-ul">Dresses</a> <ul style="display: none;"> <li><a href="http://automationpractice.com/index.php?id_category=9&controller=category" title="Casual Dresses">Casual Dresses</a></li> <li><a href="http://automationpractice.com/index.php?id_category=10&controller=category" title="Evening Dresses">Evening Dresses</a></li> <li><a href="http://automationpractice.com/index.php?id_category=11&controller=category" title="Summer Dresses">Summer Dresses</a></li> </ul> </li> <li id="category-thumbnail" xpath="1"> <div><img src="http://automationpractice.com/img/c/3-0_thumb.jpg" alt="Women" title="Women" class="imgm"></div> <div><img src="http://automationpractice.com/img/c/3-1_thumb.jpg" alt="Women" title="Women" class="imgm"></div> </li> <li class="sfHoverForce" xpath="1"> <a href="http://automationpractice.com/index.php?id_category=8&controller=category" title="Dresses" class="sf-with-ul">Dresses</a> <ul class="submenu-container clearfix first-in-line-xs" style="display: none;"> <li><a href="http://automationpractice.com/index.php?id_category=9&controller=category" title="Casual Dresses">Casual Dresses</a></li> <li><a href="http://automationpractice.com/index.php?id_category=10&controller=category" title="Evening Dresses">Evening Dresses</a></li> <li><a href="http://automationpractice.com/index.php?id_category=11&controller=category" title="Summer Dresses">Summer Dresses</a></li> </ul> </li>
Единственная разница между двумя узлами - это тег UL - значение класса. попробуйте этот xpath, чтобы выбрать второй узел с привязкой,
//ul[contains(@class,'submenu-container')]/preceding-sibling::a[@title='Dresses']
С размещенным вами HTML-кодом этот XPath будет работать
//a[@title='Dresses'][./following-sibling::ul[contains(@class,'submenu-container')]] ^ find an A tag with a specific title ^ the A tag should have a sibling UL ^ and that UL contains a specific class
Вы можете попробовать это:
//li[a[@title='Dresses']][2]/a
Это даст второй a элемент с заголовком 'Платья'. Если вы хотите первый элемент, измените индекс с 2 на 1.
a