Мне нужно иметь возможность выбрать отдельный динамический путь xpath - PullRequest
0 голосов
/ 08 октября 2019

Мне нужно выбрать отдельный динамический путь xpath в селене между 2 одинаковыми кусочками xml (Платья). Мне нужно создать динамический xpath для второго значения, которое нажимает на саму кнопку. Я пробовал: //a[@title = 'Dresses'][@class = 'sf-with-ul'], который выбирает и изображение, и кнопку.

Вот код:

<li class="sfHoverForce" xpath="1">
    <a href="http://automationpractice.com/index.php?id_category=8&amp;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&amp;controller=category" title="Casual Dresses">Casual Dresses</a></li>
        <li><a href="http://automationpractice.com/index.php?id_category=10&amp;controller=category" title="Evening Dresses">Evening Dresses</a></li>
        <li><a href="http://automationpractice.com/index.php?id_category=11&amp;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&amp;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&amp;controller=category" title="Casual Dresses">Casual Dresses</a></li>
        <li><a href="http://automationpractice.com/index.php?id_category=10&amp;controller=category" title="Evening Dresses">Evening Dresses</a></li>
        <li><a href="http://automationpractice.com/index.php?id_category=11&amp;controller=category" title="Summer Dresses">Summer Dresses</a></li>
    </ul>
</li>

Ответы [ 3 ]

1 голос
/ 08 октября 2019

Единственная разница между двумя узлами - это тег UL - значение класса. попробуйте этот xpath, чтобы выбрать второй узел с привязкой,

//ul[contains(@class,'submenu-container')]/preceding-sibling::a[@title='Dresses']
0 голосов
/ 08 октября 2019

С размещенным вами 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
0 голосов
/ 08 октября 2019

Вы можете попробовать это:

//li[a[@title='Dresses']][2]/a

Это даст второй a элемент с заголовком 'Платья'. Если вы хотите первый элемент, измените индекс с 2 на 1.

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