Ошибка драйвера 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.
Ответы
Ответ 1
Вы используете устаревшую версию ChromeDriver. Ваш первый порт захода должен состоять в том, чтобы обновить его здесь.
Я очень подозреваю, что проблема заключается в обновлении вашего Chrome на вашем сервере, а ChromeDriver v2.1 не поддерживает поддержку в последних версиях Chrome.
Ответ 2
Посмотрите на другие возможные решения: https://groups.google.com/forum/?hl=en#!topic/selenium-users/gfvfH-YEC48
В моем случае добавление аргумента -no-sandbox для ChromeOptions решило проблему.
Ответ 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 решило проблему для меня.