Во время моего тестового прогона есть куча js-скриптов, которые создают глобальные константы, к которым я должен получить доступ позже.Кодовая база в настоящее время построена так, как я не могу этого избежать.По сути, происходят следующие вещи: открывается страница, в одном вызове выполняется один сценарий, а в другом вызове выполняется другой сценарий.
from selenium import webdriver
with webdriver.Firefox() as driver:
driver.get("http://127.0.0.1:8000")
driver.execute_script("const x = 1;")
driver.execute_script("console.log(x + 1);")
Все вылетает с этой ошибкой.
Traceback (most recent call last):
File "test_hello_selenium.py", line 24, in <module>
driver.execute_script("console.log(x += 1);")
File "~/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 636, in execute_script
'args': converted_args})['value']
File "~/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "~/python3.6/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.JavascriptException: Message: ReferenceError: x is not defined
На самом деле, водитель не имеет значения.С chromedriver ошибка остается прежней.
Фактический вопрос заключается в том, как добиться правильного результата без объединения двух js-скриптов в один или понять, почему это невозможно.