Подтвердить что ты не робот

Ошибка драйвера Chrome при использовании Selenium: невозможно открыть открытые страницы

При запуске тестов Selenium возникает ошибка, связанная с драйвером Chrome. Сообщение об ошибке " Невозможно открыть открытые страницы." Тесты Selenium работали нормально до последнего вечера. Проблема, похоже, началась после перезагрузки сервера днем ​​раньше. Я не могу воспроизвести эту ошибку в своем локальном поле. Выполнение тестов Selenium из командной строки на сервере открывает браузер Chrome, но приводит к той же ошибке. Любые идеи?

Линия, которая не работает:

chromeDriver = new OpenQA.Selenium.Chrome.ChromeDriver(externalDriverPath);

Сообщение об ошибке и stacktrace:

не удалось открыть открытые страницы (информация о драйвере: chromedriver = 2.1, платформа = Windows NT 6.1 SP1 x86_64) при OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Ответ errorResponse) в OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, параметры словаря`2) при OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities желаемые возможности) при OpenQA.Selenium.Remote.RemoteWebDriver..ctor(ICommandExecutor commandExecutor, ICapabilities wishCapabilities) при OpenQA.Selenium.Chrome.ChromeDriver..ctor(String chromeDriverDirectory, параметры ChromeOptions) на OpenQA.Selenium.Chrome.ChromeDriver..ctor(String chromeDriverDirectory) в SeleniumTests.BaseTest.SetupBrowsers()

При создании экземпляра ChromeDriver появляется окно консоли. Сервер с ошибкой, похоже, ссылается на вещи, НЕ РЕАЛИЗУЕМЫЕ.

Выход ChomeDriver с сервера с ошибкой:

Запустил ChromeDriver (v2.1) на порт 2984 [4700: 4292: 0108/111503: ОШИБКА: gpu_info_collector_win.cc(102)] Не удается получить оценку WinSAT va lid. [4700: 4292: 0108/111503: ОШИБКА: chrome_views_delegate.cc(176)] НЕ ВЫПОЛНЕНО [4700: 4292: 0108/111503: ОШИБКА: desktop_root_window_host_win.cc(746)] NOT IMPLEMENT ED [0108/111504: ОШИБКА: gl_surface_egl.cc(132)] eglInitialize с ошибкой UNKNO WN [0108/111504: ОШИБКА: gl_surface_win.cc(97)] Ошибка GLSurfaceEGL:: InitializeOneOff.

Выход ChomeDriver с моего ПК, который отлично работает:

Запустил ChromeDriver (v2.1) на порт 18786 [884540: 883760: 0108/114010: ОШИБКА: gpu_info_collector_win.cc(102)] Не удается получить достоверную оценку WinSAT. [884992: 884996: 0108/114010: ОШИБКА: base_feature_provider.cc(122)] manifestTypes: Llowing web_page-контексты требуют предоставления значения для матчей. [885232: 885236: 0108/114011: ОШИБКА: base_feature_provider.cc(122)] manifestTypes: Llowing web_page-контексты требуют предоставления значения для матчей. [884540: 883760: 0108/114011: ОШИБКА: base_feature_provider.cc(122)] manifestTypes: Llowing web_page-контексты требуют предоставления значения для матчей. [0108/114011: ОШИБКА: gl_surface_egl.cc(131)] eglInitialize с ошибкой UNKNO WN [0108/114011: ОШИБКА: gl_surface_win.cc(54)] Ошибка GLSurfaceEGL:: InitializeOneOff.

4b9b3361

Ответ 1

Вы используете устаревшую версию ChromeDriver. Ваш первый порт захода должен состоять в том, чтобы обновить его здесь.

Я очень подозреваю, что проблема заключается в обновлении вашего Chrome на вашем сервере, а ChromeDriver v2.1 не поддерживает поддержку в последних версиях Chrome.

Ответ 3

Вот краткое обходное решение, которое я нашел во время копирования, чтобы избавиться от этой ошибки: unknown error: unable to discover open pages

В вашем конфигурационном файле транспортира добавьте следующее:

 capabilities: {
    browserName: 'chrome',
    chromeOptions: {
      args: ['--no-sandbox']
    }   
},

Самая важная строка - - no-sandbox; добавив, что строка как-то избавляется от этой ошибки.

Я не совсем уверен, почему он работает, но это обходное решение, которое я нашел, копаясь в Интернете.

*********************************** ОБНОВЛЕНИЯ от 10/04/2016 **** *******************************

Пожалуйста, проигнорируйте эту часть прямо выше, поскольку это обходное решение НЕ является правильным исправлением; ниже Я покажу вам фактическое исправление вашей проблемы; у вас просто устаревший драйвер chrome и запуск "обновления webdriver-manager" будет обновляться только до версии 2.22, поэтому я покажу вам, как захватить v2.24 прямо ниже.


Продолжайте читать, если обновление вашего webdriver-менеджера не обновляет chromedriver к последнему i.e прошлое v2.22 ИЛИ к v2.24 по состоянию на 10/04/2016.

Я потерял несколько недель, потянув мои волосы за вопрос, который у меня был с "Unable to discover open pages", и каждый раз, когда я обновлял chromedriver, он обновлялся до version 2.22 для хромированного ребра, и я считаю, что сервер selenium равен v2.53. Моя проблема не была на самом деле с сервером селена, поэтому v2.53 был в порядке.

Issue was with chromedriver v2.22. 

Eventough эта ссылка на хромдрайверу показала, что была последняя версия 2.24, 'webdriver-manager update' НЕ подобрала бы эту последнюю версию, она бы только захватить версию 2.22 драйвера хрома.

Как я обошел это?

Просто выполните приведенную ниже команду после того, как вы проверите эту ссылку, для какой версии хронографа вы хотите обновить; например, я хотел v2.24, поэтому я выполнил следующую команду:

Обновление webdriver-manager --versions.chrome 2.24

Если вы проверите свое местоположение: C:\Users\<USER>\AppData\Roaming\npm\node_modules\webdriver-manager\selenium\

Вы должны увидеть, что туда был загружен нужный хромированный рекордер; если он там отсутствует, прочитайте журналы командной строки, и он скажет вам, где он скачал ваши файлы с хром.

Надеюсь, что это поможет кому-то!

Ответ 4

У меня была такая же проблема, но обновление до последнего ChromeDriver (v2.8) не решило его для меня. Я запускал Selenium на сервере CI (машина Dell с 64-разрядным Win 7). Я получал исключение каждый раз, когда сервер некоторое время "простаивал".

Для меня проблема заключалась в том, чтобы установить "Отключить отображение после" в Windows "Параметры электропитания до" Никогда ".

Ответ 5

Сначала убедитесь, что вы обновили браузер Chrome с помощью пользовательского интерфейса меню.

Затем обновите ChromeDriver, здесь.

Ответ 6

По какой-то причине драйвер Chrome не может интерпретировать трафик https. Если вы измените свою ссылку на http, она будет работать хорошо.

Ответ 7

Я запускаю Selenium с Python в Docker на экземпляре вычислений Google. Для меня проблема была в том, что у моего экземпляра не было достаточно памяти, и моя работа по очистке потерпела бы неудачу с этой ошибкой. Обновление до g1-small решило проблему для меня.