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


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

Линия то есть неудача:

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

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

Не удается обнаружить открытые страницы (информация о драйвере: chromedriver=2.1, platform=Windows NT 6.1 SP1 x86_64) на Опенка.Селен.Дистанционный.RemoteWebDriver.UnpackAndThrowOnError (Ответ errorResponse) на Опенка.Селен.Дистанционный.RemoteWebDriver.Execute (Строка driverCommandToExecute, параметры словаря`2) на Опенка.Селен.Дистанционный.RemoteWebDriver.StartSession (ICapabilities desiredCapabilities) около Опенка.Селен.Дистанционный.RemoteWebDriver..чтор(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities) на Опенка.Селен.Хром.ChromeDriver..ctor (строка chromeDriverDirectory, chromeoptions options) на Опенка.Селен.Хром.ChromeDriver..ctor (строка chromeDriverDirectory) в SeleniumTests.BaseTest.SetupBrowsers ()

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

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

Запустил ChromeDriver (v2. 1) на порту 2984 [4700:4292: 0108/111503: ошибка: gpu_info_collector_win. cc (102)] не могу получить оценку va lid WinSAT. [4700:4292: 0108/111503: ошибка: chrome_views_delegate. cc (176)] нет ВЫПОЛНЕННЫЙ [4700:4292: 0108/111503: ошибка: desktop_root_window_host_win. cc (746)] нет Реализовать ED [0108/111504: ERROR: 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: заполнение контекстов web_page требует предоставления значения для спички. [885232:885236: 0108/114011: ошибка: base_feature_provider. cc (122)] manifestTypes: заполнение контекстов web_page требует предоставления значения на матчи. [884540:883760: 0108/114011: ошибка: base_feature_provider. cc (122)] manifestTypes: заполнение контекстов web_page требует предоставления значения на матчи. [0108/114011: ошибка: gl_surface_egl. cc(131)] eglInitialize ошибка с ошибкой UNKNO WN [0108/114011: ERROR: gl_surface_win. cc (54)] GLSurfaceEGL:: InitializeOneOff не удалось.

6 24

6 ответов:

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

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

Ищите здесь другие возможные решения: https://groups.google.com/forum/?hl=en#! тема/selenium-users/gfvfH-YEC48

В моем случае добавление аргумента --no-sandbox к ChromeOptions решило проблему.

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

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

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

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

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

***********************************обновления по состоянию на 10/04/2016***********************************

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


Читайте дальше, если ваш WebDriver-manager update не обновляет chromedriver до последнего т. е. прошедшего v2. 22 или до v2. 24 по состоянию на 10/04/2016.

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

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

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

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

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

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

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

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

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

Что исправило проблему для меня, так это установить "выключить дисплей после" в настройках питания Windows На "никогда".

Сначала убедитесь, что вы обновили браузер chrome, через меню UI.

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

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