Почему селен говорит мне, что в моем коде javascript не хватает скобок, а я - нет? - PullRequest
0 голосов
/ 21 июня 2020

Это код, который я сейчас использую в своем приложении selenium.


container_xpath = '//a[starts-with(@href, "/direct/t/")]/../../..'

def js_code(code = ""):
    return f"document.evaluate('{container_xpath}', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; {code}"

code = f'console.log(\"{js_code()}\")'
self.driver.execute_script(code)

Вывод js_code ():

document.evaluate('//a[starts-with(@href, "/direct/t/")]/../../..', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;

Мне все это кажется прекрасным, однако, когда я запускаю это, я получаю сообщение об ошибке в терминале: «selenium.common.exceptions.JavascriptException: Сообщение: javascript ошибка: отсутствует) после списка аргументов». Ty за любую помощь!

1 Ответ

1 голос
/ 21 июня 2020

При определении Xpath вы не можете использовать двойные кавычки (""), поэтому попробуйте изменить его форму с "/ direct / t /" на '/ direct / t /'

, если это тоже не так ' Кажется, работает, тогда измените оператор entre с

'// a [начинается с (@href, "/direct/t/") ]/../../..'

От

до

"// a [начинается с (@href, '/ direct / t /')−/../../.."

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