Selenium - Как исправить execute_script, не возвращающий никаких значений после выполнения нескольких операторов JavaScript - PullRequest
0 голосов
/ 21 сентября 2019

Я хочу вернуть строку, используя execute_script, в мой скрипт на python, но я не получаю никакой строки из моей функции execute_script

Я попробовал вариант моего кода, который не работал.Console.logging мой код в консоли chrome dev tools работает.

Вот мой код Python, который я пытаюсь выполнить.Я ожидаю, что переменная javascript будет содержать строку внутри, но она пуста.

javaScript = driver.execute_script('proposedProRata = document.querySelectorAll("#ProposedPercent")' + 'proposedProRataStr = ""' + 'for (let i = 0, element; element = proposedProRata[i++];) { proposedProRataStr = proposedProRataStr + element.value + " " }' + 'proposedProRataStr')

Я ожидаю, что будет возвращена предложенная строка ProRataStr, поэтому я могу использовать ее в своем коде Python, но я не получаю ни одной возвращенной строки без сообщений об ошибках

1 Ответ

0 голосов
/ 21 сентября 2019

Вот простой способ перебрать все соответствующие элементы, а затем вернуть значение.

javascript = '''var proposedProRataStr = ""; document.querySelectorAll("#ProposedPercent").forEach(function(el) {proposedProRataStr = proposedProRataStr + el.value + " "});return proposedProRataStr; '''
jsOutput = driver.execute(javascript)
print(jsOutput)

Как только вы напишите рабочий код в консоли браузера, просто оберните весь javascript в '' ' (так что вам не нужно беспокоиться об обработке двойных кавычек.

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