Как обновить драйвер Chrome

Обновлено: 24.11.2024

Вы можете запускать автоматизированные браузерные тесты пользовательского интерфейса с помощью таких технологий, как Selenium. Технология тестирования пользовательского интерфейса будет взаимодействовать с «веб-драйвером», который, в свою очередь, будет управлять браузером.
ChromeDriver — это реализация веб-драйвера для Google Chrome. ChromeDriver и Selenium очень хорошо работают вместе, но если вы потратите достаточно времени, вы столкнетесь со следующей ошибкой:

Google Chrome очень хорошо обновляется очень часто, часто оставляя ChromeDriver устаревшим. Если ChromeDriver несовместим с установленной версией Google Chrome, вы столкнетесь с ошибкой, описанной выше.
Исправление довольно простое: вернитесь на веб-сайт ChromeDriver и загрузите самую последнюю версию. Но делать это вручную каждый раз при обновлении Chrome быстро станет неуправляемым.
Особенно при выполнении тестов пользовательского интерфейса на нескольких серверах, на периодической основе или в рамках конвейера непрерывной интеграции и развертывания. Хуже того, сбой этих тестов может быть связан с системами оповещения по электронной почте, SMS и/или по телефону.

Как загрузить правильную версию Chrome

К счастью, веб-сайт ChromeDriver предоставляет систематический способ загрузки правильной версии ChromeDriver для конкретной версии Google Chrome.
Вот предоставленные инструкции:

  • Сначала узнайте, какую версию Chrome вы используете. Допустим, у вас Chrome 72.0.3626.81.
  • Возьмите номер версии Chrome, удалите последнюю часть и добавьте результат к URL "https://chromedriver.storage.googleapis.com/LATEST_RELEASE_". Например, в Chrome версии 72.0.3626.81 вы получите URL-адрес «https://chromedriver.storage.googleapis.com/LATEST_RELEASE_72.0.3626».
  • Используйте URL-адрес, созданный на последнем шаге, чтобы получить небольшой файл с используемой версией ChromeDriver. Например, приведенный выше URL-адрес даст вам файл, содержащий «72.0.3626.69». (Конечно, фактическое число может измениться в будущем.)
  • Используйте номер версии, полученный на предыдущем шаге, для создания URL-адреса для загрузки ChromeDriver. В версии 72.0.3626.69 URL будет выглядеть так: https://chromedriver.storage.googleapis.com/index.html?path=72.0.3626.69/.
  • После первоначальной загрузки рекомендуется время от времени повторять описанный выше процесс, чтобы проверить, есть ли какие-либо выпуски с исправлениями ошибок.

В приведенных выше шагах была упущена одна маленькая деталь. Вам необходимо загрузить правильный файл, который будет работать в используемой вами операционной системе (ОС). У вас будут следующие три варианта загрузки по URL-адресу, указанному в шагах выше:

  • chromedriver_linux64.zip (для Linux)
  • chromedriver_mac64.zip (для macOS)
  • chromedriver_win32.zip (для Windows)

Необходимо понять, какой файл вам нужно загрузить, в зависимости от вашей ОС, поэтому он, вероятно, был опущен в шагах. Но вам нужно будет учитывать это, чтобы автоматизировать этот процесс.

Реализация ChromeDriverInstaller предоставляет два метода:

  • Установить: этот метод устанавливает ChromeDriver по указанному пути. Если по существующему пути уже есть ChromeDriver, он будет обновлен только в том случае, если версия устанавливаемого драйвера не соответствует существующему драйверу. Метод принимает два параметра:
    • chromeVersion : строка, указывающая, для какой версии Chrome вы хотите использовать ChromeDriver. Если значение null, GetChromeVersion используется для получения версии Chrome, установленной на вашем компьютере. По умолчанию значение null.
    • forceDownload : укажите значение true, чтобы принудительно обновить ChromeDriver, даже если та же версия ChromeDriver уже находится в ожидаемом месте. По умолчанию false.

    У метода Install есть несколько перегруженных версий, делающих параметры необязательными. Реализация ChromeDriverInstaller поддерживает Windows, Linux и macOS.
    Для компиляции этого кода необходимо установить пакет "Microsoft.Win32.Registry". Этот пакет поддерживается только в Windows, но это нормально, потому что код из этого пакета будет выполняться только в Windows.

    Чтобы использовать ChromeDriverInstaller , просто создайте новый экземпляр и вызовите метод Install. Класс ChromeDriver будет автоматически искать двоичный файл ChromeDriver в папке исполняемой сборки среди других мест.
    Поэтому после установки ChromeDriver в папку исполняемой сборки вы можете создать экземпляр ChromeDriver, не указывая расположение двоичного файла ChromeDriver.

    Например, вот небольшой образец консоли, который будет делать следующее:

    • Распечатать обнаруженную версию Chrome
    • Установите ChromeDriver
    • Запросить URL для проверки
    • Распечатать заголовок, найденный при просмотре URL-адреса с помощью ChromeDriver и Selenium.

    Вывод этого консольного приложения выглядит следующим образом:

    При втором запуске этого консольного приложения ChromeDriver уже будет загружен, и этап загрузки будет пропущен.
    Это консольное приложение является лишь одним из примеров использования ChromeDriverInstaller . Вы также можете подключить его к своим тестовым проектам, чтобы убедиться, что последний соответствующий ChromeDriver всегда используется перед запуском набора тестов.
    Так вы избежите ошибки несоответствия, упомянутой в начале этой записи в блоге. Вы можете найти приведенный выше пример кода на GitHub.

    Анализ кода

    Давайте разберем код, начав с метода GetChromeVersion. В зависимости от операционной системы (ОС) версия Chrome определяется по-разному. ОС определяется с помощью RuntimeInformation.IsOSPlatform .

    В Windows реестр запрашивается, чтобы получить путь к установке Chrome. Используя этот путь, вы можете получить FileVersionInfo, в котором версия Chrome хранится в свойстве FileVersion.
    Если Chrome не установлен, запрос реестра вернет значение null и будет выдано исключение.

    В Linux ожидается, что команда google-chrome будет доступна во всем мире, поэтому вы можете выполнить ее и передать аргумент --product-version, чтобы получить версию Chrome, возвращенную в качестве вывода.
    API процессов используются для выполнения этой команды. Версия Chrome отправится в StandardOutput. Если в StandardError есть что-то, генерируется исключение.

    В macOS приложение должно быть доступно по адресу "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome". По какой-то причине аргумент --product-version недоступен в macOS, но вместо него можно использовать аргумент --version.
    Единственная разница между этими двумя аргументами заключается в том, что последний добавляет к версии префикс "Google Хром".

    Для выполнения этой команды используются Process API. Версия Chrome будет отправлена ​​в StandardOutput с префиксом, который позже будет удален из строки. Если в StandardError есть что-то, генерируется исключение.

    Наконец, если код не запускается в Windows, Linux или macOS, создается исключение.

    Метод GetChromeVersion будет вызываться из метода Install, если в качестве параметра не передается версия Chrome.
    Тогда последняя часть номера версии удаляется.

    В зависимости от того, какую ОС вы используете, правильный zip-файл для загрузки и имя файла внутри zip-архива будут инициализированы по-разному.

    Метод Install не позволяет указать, куда поместить двоичный файл ChromeDriver. Предполагается, что он должен находиться в папке, где хранится исполняемая сборка.
    Вы можете добавить параметр targetPath, чтобы указать, где следует сохранить ChromeDriver. Но текущая реализация сохранит бинарный файл ChromeDriver в папку исполняемой сборки:

    В этом разделе проверяется, существует ли ChromeDriver по целевому пути. ChromeDriver не будет загружен, если загружаемая версия совпадает с версией ChromeDriver на диске. Вместо этого он вернется к вызывающей стороне.
    Если для forceDownload установлено значение true, эта оптимизация будет полностью пропущена.

    И наконец, только в Linux и macOS вам необходимо изменить права доступа к файлам, чтобы разрешить запуск ChromeDriver.

    Код намного меньше, потому что вам не нужно рассматривать никакую операционную систему, кроме Windows.

    Обзор

    Google Chrome постоянно обновляется сам по себе, но ChromeDriver для запуска тестов Selenium не обновляется автоматически вместе с ним. Со временем это приводит к ошибкам несовместимости.
    Вы можете исправить это, обновив ChromeDriver вручную, что очень утомительно, когда вам приходится делать это снова и снова. Особенно, когда вы используете пакет NuGet или регистрируете файл ChromeDriver в исходном коде, синхронизация вашего ChromeDriver с версией Chrome болезненна. Вы можете избежать этого, автоматически загружая нужный ChromeDriver во время выполнения перед запуском тестов селена. С помощью класса ChromeDriverInstaller вы можете определить версию Chrome на своем компьютере и автоматически загрузить соответствующий ChromeDriver.

    Чтобы убедиться, что вы защищены последними обновлениями безопасности, Google Chrome может автоматически обновляться, когда на вашем устройстве доступна новая версия браузера. Благодаря этим обновлениям вы можете иногда заметить, что ваш браузер выглядит по-другому.

    Получить обновление Chrome, если оно доступно

    Обычно обновления происходят в фоновом режиме, когда вы закрываете и снова открываете браузер на своем компьютере. Но если вы некоторое время не закрывали браузер, вы можете увидеть ожидающее обновление:

    1. Откройте Chrome на компьютере.
    2. Посмотрите на значок "Ещё" в правом верхнем углу.
    3. Если ожидается обновление, значок будет окрашен в другой цвет:
      • Зеленый : обновление было выпущено менее двух дней назад.
      • Оранжевый : около 4 дней назад было выпущено обновление.
      • Красный : обновление было выпущено не менее недели назад.

    Чтобы обновить Google Chrome:

    1. Откройте Chrome на компьютере.
    2. В правом верхнем углу нажмите "Ещё" .
    3. Нажмите СправкаО Google Chrome.
    4. Нажмите «Обновить Google Chrome».
      • Важно! Если вы не можете найти эту кнопку, значит, вы используете последнюю версию.
    5. Нажмите "Перезапустить".

    Браузер сохраняет открытые вкладки и окна и автоматически открывает их снова при перезапуске. Ваши окна в режиме инкогнито не откроются снова при перезапуске Chrome. Если вы не хотите перезагружаться сразу, нажмите «Не сейчас». Обновление будет применено при следующем перезапуске браузера.

    Другая информация об обновлении Chrome

    Узнайте больше о том, когда обновлять Chrome, а также о дополнительных советах для вашей операционной системы.

    Проверить наличие обновлений и текущую версию браузера

    1. Откройте Chrome на компьютере.
    2. В правом верхнем углу нажмите "Ещё" .
    3. Нажмите СправкаО Google Chrome.

    Текущий номер версии — это ряд цифр под заголовком "Google Chrome". Chrome будет проверять наличие обновлений, когда вы находитесь на этой странице.

    Чтобы применить доступные обновления, нажмите "Перезапустить".

    Узнайте, что происходит, когда Chrome обновляется до новой версии.

    Дополнительная информация для пользователей Mac, Linux и Windows

    • Пользователи Mac: вы также можете настроить автоматическое обновление браузера для всех пользователей вашего компьютера, если в папке «Приложения» установлен Google Chrome. Перейдите в раздел "О Google Chrome" и нажмите "Автоматически обновлять Chrome для всех пользователей".
    • Пользователи Linux: чтобы обновить Google Chrome, используйте диспетчер пакетов.
    • Пользователи Windows: закройте все окна и вкладки Chrome на рабочем столе, затем перезапустите Chrome, чтобы применить обновление.

    Заранее узнавайте об изменениях дизайна и новых функциях

    Хотите узнать, что будет в ближайшее время? Загрузите бета-версию Chrome, затем присоединитесь к нашему сообществу и сообщите нам, насколько она вам подходит.

    Время от времени при обновлении Chrome существующий драйвер Chrome, используемый в скрипте, становится недействительным, и отображается следующее сообщение об ошибке:

    Мне нужно вручную обновить хром-драйвер в написанном скрипте. Есть ли способ обновить его автоматически с обновленной версией Chrome?

    В настоящее время не используется какой-либо инструмент зависимости. Пишу скрипт на Python. Можете ли вы упомянуть какой-либо инструмент, который можно использовать.

    7 ответов 7

    Попробуйте использовать webdriver-manager из npm:

    И вызовите обновление webdriver-manager с помощью пакетного файла из вашего java, python или любого другого инструмента.

    Чтобы создать пакетный файл, откройте текстовый файл и добавьте обновление webdriver-manager в качестве содержимого, а затем сохраните его как file.bat

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

    Давайте посмотрим на несколько строк в Python, я опишу основной поток, и вы, возможно, захотите сделать его более мощным (например, параметры командной строки и т. д.)

    Сначала я импортирую запросы:

    Затем сохраняю нужные ссылки в две переменные + определяю имя файла нужной версии хромового драйвера:

    Теперь я даю пользователю выбрать версию, и я получаю версию с сайта:

    Наконец пришло время скачать zip-файл (если он существует):

    Результатом этих шагов будет ZIP-файл с драйвером Chrome в текущем каталоге (откуда вы запустили скрипт). Вы также можете использовать библиотеку zipfile для извлечения zip-файла после успешной загрузки.

    Если вы хотите полностью автоматизировать это, вам, вероятно, потребуется встроить параметры командной строки и передать версию Chrome в ваш скрипт Python. Например. в Arch-подобных системах вы можете использовать $ pacman -Qs chromium для получения версии Chromium. Поскольку вы не упомянули системную архитектуру, на которой хотите это построить, я выбрал свою.

    Когда все будет готово, вы можете запустить его с помощью cron или аналогичной программы.

    Используйте WebdriverManage. Он загружает требуемый двоичный файл драйвера (если он отсутствует локально) в кэш (расположение по умолчанию ~/.m2/repository/webdriver)

    И вот как вы можете добавить его в свой код:

    зависимость от последней версии:

    Решение, которое подходит для ЛЮБОГО языка программирования, который вы хотите автоматизировать. Таким образом, ваша команда сможет автоматизировать работу с помощью любого инструмента Selenium.

    С помощью Docker вы можете запустить свой собственный сервер WebDriverManager, после чего все, что вам нужно сделать, это написать очень простой код для загрузки драйверов с него:

    Драйверы будут храниться в вашей локальной папке $HOME/wdm, а также внутри образа Docker.В Docker настройте его так, чтобы он оставался демонизированным с политикой автоматического перезапуска. Было бы очень и очень дешево разместить этот сервис на AWS или Azure, поскольку для его работы требуется минимальное оборудование.

    Вот как выглядит запрос к службе (с помощью клиента Insomnia rest):

    ПРИМЕЧАНИЕ. Мне очень нравится это решение, но когда дело доходит до него, я, вероятно, предпочитаю автоматизировать с помощью док-контейнеров браузера Aerokube, таких как «Moon framework», который стоит всего 5 долларов США за поток в месяц для селеновой сетки. который запускает тесты браузера в докере.

    Лучший способ использовать пакет

    это работает идеально для меня. Я регулярно использую некоторые скрипты автоматизации для создания отчетов. Дополнительные сведения см. в документации.

    Во-первых, @Asyranok прав, даже при внедрении кода автообновления он не будет работать в 100% случаев. Однако для многих из нас эти случайные простои вполне приемлемы, если они длятся всего несколько дней.

    Я обнаружил, что ручное обновление X-серверов каждые несколько месяцев невероятно раздражает, и хотя на веб-сайте selenium есть хорошо написанные инструкции о том, как «автоматически обновлять» драйвер, я еще не видел ни одного открытого не- библиотечная реализация этого руководства.

    Вы должны выполнять развертывание с периодичностью обновления Chrome (большинство компаний еще не сделали этого, как и мы), иначе ваше приложение будет "сломано" в течение времени между обновлением Chrome и развертыванием вашей "новой" версии приложения. , и опять же, это только в том случае, если вы выпускаете по расписанию, если вы выпускаете ad-hoc, вам придется выполнить ряд ручных шагов для обновления, сборки, выпуска и т. д., чтобы ваше приложение снова заработало.

    Вам нужно (как правило, без обходного пути) извлечь последнюю версию chromedrive из NuGet вручную, опять же вручную.

    Затем обычно я добавляю этот очень хакерский вызов в начало своего приложения, чтобы вызвать эту функцию и убедиться, что для моего приложения доступна последняя версия chromedriver:

    Я уверен, что это можно значительно улучшить, но пока мне это помогает.

    Также спросили, какая последняя версия ChromeDriver?

    3 ответа. Версии на странице загрузки chromedriver отсортированы в алфавитном порядке, а не в числовом или хронологическом порядке. Это означает, что версия 2.9 отображается внизу страницы, из-за чего она может выглядеть как «последняя» или «самая последняя» версия. Фактическая самая последняя версия на момент написания этой статьи — 2.22 .

    Учитывая это, как мне найти версию ChromeDriver?

    1. Нажмите значок меню в правом верхнем углу экрана.
    2. Нажмите "Справка", а затем "О Google Chrome".
    3. Здесь можно найти номер версии вашего браузера Chrome.

    Безопасен ли ChromeDriver?

    ChromeDriver — это мощный инструмент, и он может причинить вред, если попадет не в те руки. При использовании ChromeDriver следуйте этим советам, чтобы обеспечить его безопасность: По умолчанию ChromeDriver разрешает только локальные подключения.

    Требуется ли для ChromeDriver Chrome?

    Однозначно ChromeDriver требует Chrome или Chromium. Согласно ChromeDriver — WebDriver для Chrome ChromeDriver — это отдельный исполняемый файл, который WebDriver использует для управления Chrome.

    Когда было последнее обновление Chrome?

    Сколько существует версий Google Chrome?

    Google Chrome, возможно, является самым популярным браузером, используемым для работы в Интернете в настоящее время, но большинство из нас не знает о том, что существует четыре версии браузера.

    Как понизить версию Chrome?

    Является ли Chromedriver обратной совместимостью?

    ChromeDriver совместим только с Chrome версии 12.0. 712.0 или новее. Если вам нужно протестировать более старую версию Chrome, используйте Selenium RC и экземпляр WebDriver на основе Selenium.

    Что такое Chromedriver?

    Драйвер Chrome. WebDriver — это инструмент с открытым исходным кодом для автоматизированного тестирования веб-приложений во многих браузерах. Он предоставляет возможности для навигации по веб-страницам, ввода данных пользователем, выполнения JavaScript и многого другого. ChromeDriver – это автономный сервер, реализующий стандарт W3C WebDriver.

    Какой браузер я использую?

    Какой у меня браузер? Ваш браузер — это программное приложение, которое позволяет вам посещать веб-страницы в Интернете. Популярные браузеры включают Google Chrome, Firefox, Safari и Internet Explorer. В настоящее время Google Chrome является наиболее широко используемым браузером в мире, а также считается одним из самых быстрых и безопасных.

    Как узнать, есть ли у меня Chrome в Windows 10?

    Нажмите на значок дополнительных параметров (значок из трех вертикальных точек), нажмите «Справка», а затем нажмите «О Google Chrome», чтобы открыть страницу «О Chrome». Шаг 2. На странице "О Chrome" не только отображается текущая версия Chrome, установленная на вашем компьютере, но и автоматически проверяется наличие обновлений при открытии страницы.

    Как проверить версию селена?

    Как открыть Chrome в селене?

    Как избавиться от ChromeDriver?

    Способ 1. Удалите ChromeDriver Server 17.0. 963.0 через Программы и компоненты. а. Откройте Программы и компоненты. б. Найдите в списке ChromeDriver Server 17.0.963.0, щелкните его, а затем нажмите «Удалить», чтобы начать удаление. а. Перейдите в папку установки ChromeDriver Server 17.0. б. в. а. б. в.

    Как установить селен?

    Как загрузить и установить Selenium WebDriver Шаг 1. Установите Java на свой компьютер. Загрузите и установите Java Software Development Kit (JDK) здесь. Шаг 2. Установите Eclipse IDE. Загрузите последнюю версию "Eclipse IDE для разработчиков Java" здесь. Шаг 3. Загрузите драйвер клиента Selenium Java. Шаг 4. Настройте Eclipse IDE с помощью WebDriver.

    Читайте также: