Селен - Firefox Xpath, начинающийся с круглой скобки, не работает - PullRequest
0 голосов
/ 08 мая 2020

У меня есть страница HTML вроде этой:

<AAA>
    <BBB attrB="000">
        <CCC target="11" attrC="111"/>
        <CCC target="12" attrC="888"/>
    </BBB>
    <BBB attrB="222">
        <CCC target="21" attrC="111"/>
        <CCC target="22" attrC="777"/>
    </BBB>
    <BBB attrB="000">
        <CCC target="31" attrC="111"/>
        <CCC target="32" attrC="222"/>
        <CCC target="33" attrC="111"/>
    </BBB>
</AAA>

In Selenium Я ищу один WebElement (CCC с target = "11") по xpath:

 (//BBB[@attrB='000']//CCC[@attrC='111'])[1]

В Chrome он дает мне ожидаемый результат, и возвращается единственный элемент, но в Firefox он дает нет результата (возможно, xpath не начинается с / не принимается)

Я также пробовал с // BBB [@ attrB = '000'] // CCC [@ attrC = '111'] [1], но он возвращает все элементы, соответствующие Xpath, без указанного индекса (target = "11", target = "31" и target = "33")

Что мне не хватает? Заранее спасибо

Ответы [ 3 ]

0 голосов
/ 08 мая 2020

Узнайте, как Selenium обрабатывает пути Xpath. https://www.selenium.dev/documentation/en/

Firefox имеет абсолютный XPath и не может обрабатывать XPath chrome.

Лучший способ здесь нужно щелкнуть правой кнопкой мыши любой элемент на странице. Во всплывающем меню выберите «Проверить элемент». Щелкните правой кнопкой мыши тег в Inspector, выберите «Копировать» во всплывающем окне и выберите XPath. Вставьте XPath где угодно.

0 голосов
/ 08 мая 2020

Почему бы вам не использовать что-то вроде:

//bbb[@attrb="000"][1]/ccc[@attrc="111"]

Вывод: 1 узел: <ccc target="11" attrc="111">

0 голосов
/ 08 мая 2020

Попробуйте под Xpath, это должно сработать:

(//BBB[@attrB='000']/CCC[@attrC='111'])[1]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...