Селен не распознает элемент по XPath - PullRequest
0 голосов
/ 08 марта 2020

Прошу прощения за создание топи c по этому поводу, но эта маленькая вещь поражала мой мозг в течение последних 2 часов. Chrome возвращает правильный элемент по Xpath, а также по сценарию javascript, но Selenium сообщает мне, что в самом коде , что Chrome работает отлично - ошибка:

javascript ошибка: отсутствует) после списка аргументов

Это код, который я сейчас пытаюсь:

    driver.execute_script('let clickable = document.evaluate("//a[contains(@onclick,\"openFbLWin\")]", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; clickable.click();')

Я знаю, что это немного грязно, но в целом самая важная вещь - // a [содержит (@onclick, \ "openFbLWin \")] как для селектора XPath.

1 Ответ

1 голос
/ 08 марта 2020

Я думаю, это потому, что когда вы запускаете это в python, оно конвертирует "//a[contains(@onclick,\"openFbLWin\")]" в "//a[contains(@onclick,"openFbLWin")]" без косых черт. Затем, когда это выполняется в javascript, он не может проанализировать строку, потому что внутри другой двойной кавычки есть двойные кавычки. Чтобы это исправить, измените ваш xPath на "//a[contains(@onclick,'openFbLWin')]".

Вы должны использовать встроенные инструменты поиска и нажатия selenium. Это намного более читабельно и быстрее (используйте find_element_by_xpath и click )

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