Selenium + Firefox 63.0.1 + AddBlock дает NoSuchWindowException: контекст просмотра был отброшен - PullRequest
0 голосов
/ 01 ноября 2018

Я создал скрипт 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")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...