Я создал скрипт Selenium Python, который открывает ссылку в уже существующем браузере Firefox и выполняет некоторые действия. Мне нужно использовать тот же браузер, так как я установил на него плагин addBlock, и я не хочу запускать его каждый раз, когда устанавливается новый браузер (без addBlock)
На Firefox 63.0 все работало нормально
Сегодня они обновили версию Firefox до 63.0.1, и она перестала работать. Попытка запустить
driver.get ("https://blablala.com")
дает
File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 333, in get
self.execute(Command.GET, {'url': url})
File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchWindowException: Message: Browsing context has been discarded
Я пытался http://www.yandex.ru/, http://www.google.com
если запустить браузер без плагина addBlock, такой ошибки нет и Selenium откроет этот сайт.
Кто-нибудь сталкивался с чем-то похожим после обновления Firefox? Что это должно быть? Любая ошибка Selenium WebDriver (не было новой версии, я использую последнюю версию v0.23.0)?
код (часть как присоединить к существующему сеансу взята с этого сайта.
def attach_to_session(executor_url, session_id):
original_execute = WebDriver.execute
def new_command_execute(self, command, params=None):
if command == "newSession":
# Mock the response
return {'success': 0, 'value': None, 'sessionId': session_id}
else:
return original_execute(self, command, params)
# Patch the function before creating the driver object
WebDriver.execute = new_command_execute
driver = webdriver.Remote(command_executor=executor_url,
desired_capabilities={})
driver.session_id = session_id
# Replace the patched function with original function
WebDriver.execute = original_execute
return driver
driver = attach_to_session('http://127.0.0.1:50688', '560a911b-c75a-4c55-
863e-b532b8f07365')
driver.get ("https://blablablabla")