Я пытаюсь запустить RSelenium с помощью функции rsDriver, но когда я запускаю
rD <- rsDriver()
Я получаю сообщение о том, что мне нужна более новая версия Chrome:
> rD <- rsDriver()
checking Selenium Server versions:
BEGIN: PREDOWNLOAD
BEGIN: DOWNLOAD
BEGIN: POSTDOWNLOAD
checking chromedriver versions:
BEGIN: PREDOWNLOAD
BEGIN: DOWNLOAD
BEGIN: POSTDOWNLOAD
checking geckodriver versions:
BEGIN: PREDOWNLOAD
BEGIN: DOWNLOAD
BEGIN: POSTDOWNLOAD
checking phantomjs versions:
BEGIN: PREDOWNLOAD
BEGIN: DOWNLOAD
BEGIN: POSTDOWNLOAD
[1] "Connecting to remote server"
Selenium message:session not created: This version of ChromeDriver only supports Chrome version 74
(Driver info: chromedriver=74.0.3729.6 (255758eccf3d244491b8a1317aa76e1ce10d57e9-refs/branch-heads/3729@{#29}),platform=Mac OS X 10.14.3 x86_64)
Could not open chrome browser.
Client error message:
Summary: SessionNotCreatedException
Detail: A new session could not be created.
Further Details: run errorDetails method
Check server log for further details.
Появляется сообщение об ошибке, в котором говорится, что мне нужна версия Chrome 74.0.3729.6, но когда я смотрю в настройках Chrome, мне сообщается, что я использую последнюю стабильную версию (73.0.3683.75). При дальнейшем поиске в Google 74.0.3729.6 является предварительной версией Chrome для разработчиков: нужно ли мне устанавливать ее, чтобы использовать ChromeDriver с RSelenium?
Я не приверженец идеи использования Chrome, но мне не удалось заставить rsDriver использовать Firefox: когда я указываю browser = "firefox", rsDriver выдает то же сообщение об ошибке о том, что ChromeDriver не поддерживает мою версию Chrome.
Информация о моем сеансе:
R version 3.5.2 (2018-12-20)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS Mojave 10.14.3
Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRlapack.dylib
locale:
[1] en_GB.UTF-8/en_GB.UTF-8/en_GB.UTF-8/C/en_GB.UTF-8/en_GB.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] wdman_0.2.4 forcats_0.3.0 stringr_1.3.1 dplyr_0.7.8 purrr_0.2.5 readr_1.3.1 tidyr_0.8.2
[8] tibble_2.0.1 ggplot2_3.1.0 tidyverse_1.2.1 rvest_0.3.2 xml2_1.2.0 RSelenium_1.7.5
в моем случае, если ошибка говорит, что он поддерживает только версию 76, я не могу использовать chrome 76.xxx. если я откатываюсь до 75.xxx, он говорит, что поддерживает только версию 75. Если я попробую последнюю версию (в настоящее время 78), она работает
@ BingLi224, какая версия селена и Python используется? Я столкнулся с той же проблемой, хотя версия Chrome 78.0.3904.70.
@zzxwill Selenium 3.141.0, Python 3.7.3, Chrome 78.0.3904.70 (в настоящее время, но не уверен, что это было на тот момент)
Если у вас есть choco, вы можете «обновить choco chromedriver».
Самый простой способ, который я нашел сегодня, — это просто проверить версию Chrome, загрузить веб-драйвер и скопировать его в c:/programfiles/python/.. и использовать этот путь к вашему скрипту… действительно работает для меня.
Это помогло мне установить последний Google Chrome на Ubuntu через командную строку: askubuntu.com/a/510063/48214
Используйте это, чтобы обновить Chromedriver и Chrome до последней версии в Ubuntu/Linux: stackoverflow.com/a/61218681/4240654





Это сообщение об ошибке...
Selenium message:session not created: This version of ChromeDriver only supports Chrome version 74
(Driver info: chromedriver=74.0.3729.6 (255758eccf3d244491b8a1317aa76e1ce10d57e9-refs/branch-heads/3729@{#29}),platform=Mac OS X 10.14.3 x86_64)
... подразумевает, что ChromeDriver ожидает, что версия Браузер Chrome будет 74.
Чтобы установить последнюю версию ChromeDriver, вы можете использовать:
brew tap homebrew/cask && brew cask install chromedriversudo apt-get install chromium-chromedriverchoco install chromedriverВаша основная проблема заключается в несовместимость между версиями двоичных файлов, которые вы используете, следующим образом:
Supports Chrome v74
Таким образом, существует явное несоответствие между Драйвер Chrome v74.0.3729.6 и Браузер Chrome v73.0.
@Test.driver.quit() в методе tearDown(){}, чтобы изящно закрыть и уничтожить экземпляры Вебдрайвер и Веб-клиент.Вы можете найти соответствующее подробное обсуждение в:
Я понизил версию ChromeDriver до версии 73.0.3683.68, очистил рабочее пространство проекта и пересобрал его только с необходимыми зависимостями. Теперь при запуске rD <- rsDriver() выдается другое сообщение об ошибке, заканчивающееся на: [1] "Connecting to remote server" Could not open chrome browser. Client error message: Undefined error in httr call. httr output: Failed to connect to localhost port 4567: Connection refused Check server log for further details. Warning message: In rsDriver() : Could not determine server status.
Также извиняюсь, если это очевидно (я впервые пытаюсь сделать что-то подобное), но что такое веб-клиент и что такое GA? Кроме того, что такое @Test и можно ли запустить его в RStudio?
Это всего лишь общий ответ о том, как устранять несоответствия версий при использовании Selenium. Этот ответ вообще не относится к R или RSelenium. Этот принятый ответ должен быть ответом @CAD ниже.
Для обновления Chromedriver в Ubuntu используйте это: stackoverflow.com/questions/48649230/…
Убедитесь, что вы проверили версию своего браузера Chrome, а затем перейдите на страницу драйверов Chrome, чтобы загрузить совместимый драйвер для версии вашего браузера chromedriver.chromium.org/downloads.
+1 за объяснение (научить человека ловить рыбу и все такое). Я обновил свой chromedriver, чтобы он соответствовал моей версии Chrome (Chrome Help -> About - version), и это было исправлено.
Сегодня я столкнулся с той же проблемой и нашел этот пост и другие в Google. Я думаю, что у меня может быть более прямое решение в виде модификации вашего кода. Предыдущий ответ верен при выявлении несоответствия версий.
Я пробовал предложенные решения безрезультатно. Я обнаружил, что версии были правильными на моем компьютере. Однако эта ошибка несоответствия не была связана с фактическими версиями, установленными на компьютере, а код RSelenium ищет «последнюю» версию Chrome/ChromeDriver по умолчанию. См. ?rsDriver() справочную страницу для аргументов.
Если вы запустите код binman::list_versions("chromedriver"), как указано в справочной документации, вы сможете определить версии, совместимые с функцией. В моем случае я смог использовать следующий код для установления соединения.
driver <- rsDriver(browser=c("chrome"), chromever = "73.0.3683.68", extraCapabilities = eCaps)
Вы должны указать свою версию Chrome с помощью аргумента chromever=. Однако мне пришлось использовать ближайшую версию (моя версия Chrome была «73.0.3683.75»).
Надеюсь это поможет!
Ответ CAD сработал для меня с оговоркой chrome://settings/help для просмотра и/или обновления версии браузера Chrome. В моем случае я нажал «Обновить», чтобы обновить до версии: 73.0.3683.86 (официальная сборка) (64-разрядная версия).
Кажется, ваш вариант больше подходит для моего случая. Но я не могу найти, как сказать транспортиру использовать определенную версию. Например, chromever = "73.0.3683.68". В моем случае. Я использую более низкую версию хром-браузера, чем запрашивает транспортир. Это мой случай stackoverflow.com/questions/55984924/…
Эй, сэр, рок. Я немного изменил этот код, чтобы всегда использовать последнюю версию: available.versions<-binman::list_versions("chromedriver") latest.version = available.versions$win32[length(available.versions)] Спасибо за это!
Запустить код binman::list_versions("chromedriver") где? Как указано в документации какие?
binman кажется драгоценным камнем. Я установлю это, начну с этого.
Я использую: rsDriver(chromever = binman::list_versions("chromedriver")$win32[4])
Я разобрался с этой проблемой сегодня, и обновление моего менеджера веб-драйверов решило ее для меня (моя предыдущая версия была 3.0.0):
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>3.3.0</version>
<scope>test</scope>
</dependency>
Я решил ту же проблему, перейдя на версию 3.3.0, спасибо.
Я был на версии 1.x. Обновление до 3.3.0 исправило это и для меня.
Вы должны использовать последнюю версию: <version>3.6.2</version>.
Я думаю, что этот ответ был бы значительно улучшен, если бы он включал шаги по обновлению своего «менеджера веб-драйверов». Все, что вы здесь сделали, это предоставили некоторый XML без особых объяснений. Не могли бы вы обновить этот ответ некоторыми дополнительными деталями? Спасибо.
Я действительно боролся с этим несоответствием между ChromeDriver v74.0.3729.6 и браузером Chrome v73.0. Наконец-то я нашел способ получить более раннюю версию ChromeDriver,
В Chrome > О Google Chrome скопируйте номер версии, кроме последней группы. Например, 72.0.3626.
Вставьте эту версию в конец этого URL-адреса и посетите ее. Он вернется с версией, которую вы должны скопировать. https://chromedriver.storage.googleapis.com/LATEST_RELEASE_
Вернувшись в командную строку, запустите bundle exec chromedriver-update <copied version>
Я нашел решение и научил - такой ответ уже должен быть :)
Это решение сработало для меня
driver <- rsDriver(browser=c("chrome"), chromever = "73.0.3683.68")Мне помогло обновление версии Гугл Хром до 74.
Шаги: 1. Перейдите в Справка -> О Google Chrome -> Chrome будет автоматически искать обновления (обновите Chrome до последней версии).

Это отлично сработало для меня. Гораздо проще, чем принятое решение.
Это полезно для пользователей Linux. Моя проблема была тривиальной, я использовал хром-браузер. Я установил хром, и все проблемы были решены. Он может работать с хромом, но с дополнительными действиями. Я не получил успеха. Я мог бы установить необходимую версию драйвера для конфигурации транспортира. Использовался последний. Мне нужно было понижение.
У меня почти такие же проблемы, как эта, проблемы возникают внутри конвейера при запуске моего теста селена, для которого требуется пакет chromedriver для запуска теста e2e.
Проблема только в том, что в конвейере (в моем случае) установлена версия Chrome 73, а мой пакет chromedriver установлен в версии 74.
Finally there are two simple solutions:
- Downgrade your chrome
Downgrade your chromedriver package version. in my case, cause i running inside the pipeline i need to install chromedriver before running the selenium test like displayed below.
- script: npm install [email protected] --chromedriver-force-download displayName: 'Install Chrome'
У меня такая же проблема. Как узнать версию chrome на узле Jenkins?
Как установить хром на узел как часть конвейера сборки, если хрома нет
чтобы установить хром как часть конвейера сборки, вы можете просто добавить сценарий задачи, который я разместил выше.
У меня была такая же проблема в Трэвисе, и я решил ее, добавив:
addons:
chrome: stable
в мой .travis.yml файл.
Если это не работает для вас, попробуйте следующее: stackoverflow.com/a/57577404/2441263
Я отправил пул реквест в RSelenium, добавив логику выбора версии ChromeDriver, предложенную в моем исходном ответе. Пока он не будет объединен (если вообще), вы можете установить его с помощью
remotes::install_github("ropensci/RSelenium#237")
Затем вы можете вызвать rsDriver() с новой опцией chromever = "latest_compatible", которая всегда должна выбирать правильную версию ChromeDriver:
RSelenium::rsDriver(browser = "chrome",
chromever = "latest_compatible")
Я столкнулся с такой же ошибкой, используя настройку RSelenium::rsDriver() по умолчанию chromever = "latest", которая привела к неудачной попытке объединить chromedriver 75.0.3770.8 с последней google-chrome-stable 74.0.3729.157:
session not created: This version of ChromeDriver only supports Chrome version 75
Поскольку это, очевидно, повторяющаяся и довольно раздражающая проблема, я придумал следующий обходной путь, чтобы всегда использовать последнюю совместимую версию ChromeDriver:
rD <- RSelenium::rsDriver(browser = "chrome",
chromever =
system2(command = "google-chrome-stable",
args = "--version",
stdout = TRUE,
stderr = TRUE) %>%
stringr::str_extract(pattern = "(?<=Chrome )\\d+\\.\\d+\\.\\d+\\.") %>%
magrittr::extract(!is.na(.)) %>%
stringr::str_replace_all(pattern = "\\.",
replacement = "\\\\.") %>%
paste0("^", .) %>%
stringr::str_subset(string =
binman::list_versions(appname = "chromedriver") %>%
dplyr::last()) %>%
as.numeric_version() %>%
max() %>%
as.character())
Приведенный выше код — проверено только под линуксом и использует некоторые пакеты tidyverse (установите их заранее или перепишите в базе R). Для других операционных систем вам, возможно, придется немного адаптировать его, в частности, заменить command = "google-chrome-stable" системной командой для запуска Google Chrome:
На macOS должно быть достаточно заменить command = "google-chrome-stable" на command = "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome".
В Windows ошибка, связанная с платформой не позволяет нам напрямую вызывать двоичный файл Google Chrome, чтобы получить номер его версии. Вместо этого сделайте следующее:
rD <- RSelenium::rsDriver(browser = "chrome",
chromever =
system2(command = "wmic",
args = 'datafile where name = "C:\\\\Program Files (x86)\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe" get Version /value',
stdout = TRUE,
stderr = TRUE) %>%
stringr::str_extract(pattern = "(?<=Version=)\\d+\\.\\d+\\.\\d+\\.") %>%
magrittr::extract(!is.na(.)) %>%
stringr::str_replace_all(pattern = "\\.",
replacement = "\\\\.") %>%
paste0("^", .) %>%
stringr::str_subset(string =
binman::list_versions(appname = "chromedriver") %>%
dplyr::last()) %>%
as.numeric_version() %>%
max() %>%
as.character())
По сути, код просто обеспечивает передачу последней версии ChromeDriver соответствие номеру версии основного-минорного патча стабильного браузера Google Chrome системы в качестве аргумента chromever. Эта процедура должна соответствовать официальная схема версий ChromeDriver. Цитировать:
- ChromeDriver uses the same version number scheme as Chrome (...)
- Each version of ChromeDriver supports Chrome with matching major, minor, and build version numbers. For example, ChromeDriver 73.0.3683.20 supports all Chrome versions that start with 73.0.3683.
Герой, который нам нужен. Спасибо! P.S: я отредактировал, включив код Windows, чтобы упростить будущим читателям
? Я только что правильно интегрировал его, так как вы успешно его протестировали!
Я получил ту же ошибку, когда использую платформу роботов (платформу на основе Selenium) в экземпляре Докер. Причина в том, что докер использовал кешированный google-chrome-stable_current_amd64.deb для Chrome, но установил последний драйвер Chrome, который был более поздней версии.
Затем я использовал приведенную ниже команду, и ошибка была устранена.
docker-compose build --no-cache
Надеюсь, это поможет кому-то.
Я столкнулся с той же ошибкой:
session not created: This version of ChromeDriver only supports Chrome version 75
...
Driver info: driver.version: ChromeDriver
Мы запускаем тесты с компьютера, на котором нет настоящего пользовательского интерфейса, поэтому мне пришлось работать через командную строку (CLI).
Я начал с определения текущей версии Chrome, установленной на компьютере с Linux:
$> google-chrome --version
И получил такой ответ:
Google Chrome 74.0.3729.169
Итак, я обновил версию Chrome следующим образом:
$> sudo apt-get install google-chrome-stable
И после проверки еще раз версии я получил это:
Google Chrome 75.0.3770.100
После этого тесты Selenium прошли гладко.
Это применимо, когда браузер Chrome был установлен через repo/ppa и не может обновляться.
Для MacOS обновление chromedriver помогло:
brew upgrade --cask chromedriver
Хорошо, это навело меня на правильный путь, за исключением того, что я использовал chromedriver-beta, который ожидал более позднюю версию Chrome. Итак, что я сделал: brew cask uninstall chromedriver-beta; brew cask install chromedriver
Это работает, только если вы установили chromedriver через brew. Я установил его через прямую загрузку, поэтому сначала запустил rm /usr/local/bin/chromedriver, а затем brew cask install chromedriver, чтобы получить последнюю версию. В любом случае обновление chromedriver было решением.
это должен быть принятый ответ, а не тот, который предлагает понизить версию хрома
Это исправило мою проблему.
С 2021 года, если вы получаете сообщение об ошибке Error: Unknown command: cask, вместо этого вам нужно выполнить команду: brew reinstall chromedriver. См. stackoverflow.com/questions/30413621/… для получения дополнительной информации. К вашему сведению, новый синтаксис установки бочки: brew install --cask chromedriver
Больше нет необходимости понижать версию Chrome, когда вы получаете эту ошибку, это означает, что пришло время снова запустить webdriver-manager update
Другой ответ, так как Франческо Борци мне не помог.
Добавьте это в свой travis.yml:
addons:
chrome: stable
before_script:
- LATEST_CHROMEDRIVER_VERSION=`curl -s "https://chromedriver.storage.googleapis.com/LATEST_RELEASE"`
- curl "https://chromedriver.storage.googleapis.com/${LATEST_CHROMEDRIVER_VERSION}/chromedriver_linux64.zip" -O
- unzip chromedriver_linux64.zip -d ~/bin
Большое спасибо и благодарность tagliala на github:
Просто обновите транспортир:
npm установить protractor@latest --save-dev
Мне пришлось переустановить транспортир, чтобы он вытащил обновленный модуль webdriver-manager. Кроме того, согласно комментарию @Mark, package-lock.json может блокировать зависимость.
npm uninstall protractor
npm install --save-dev protractor
Затем обязательно проверьте значение maxChromedriver в node_modules/protractor/node_modules/webdriver-manager/config.json после переустановки, чтобы убедиться, что оно соответствует нужной версии драйвера Chrome.
Спасибо, сработало для меня. У меня был установлен последний транспортир (5.4.2), но зависимый менеджер веб-драйверов застрял на 12.1.4. удаление и переустановка транспортира дала мне более новый webdriver-manager - 12.1.7
Спасибо, у меня тоже сработало. У меня была такая же проблема, как Кев описал в предыдущем комментарии. ^
это было проблемой для меня. package-lock.json блокировал зависимость. Это не ошибка, просто нужно обновить зависимости.
Не могли бы вы обновить свой ответ, включив в него информацию, предоставленную @Mark? Это может иметь решающее значение (это была настоящая проблема, которая у меня была)
Я не смог устранить несоответствие версии, выполнив любой из ответов при использовании Visual Studio, но просто обновив пакеты nuget Selenium.WebDriver и Selenium.WebDriver.ChromeDriver до последних версий, это сработало.
Я использовал Chrome v78, и обновление chromedriver до v78 все равно выдавало ошибку несовместимости. Ответ CAD привел меня к решению.
Такая же проблема случилась со мной сегодня.
Мое решение:
Загрузите последнюю стабильную версию chromedriver: https://sites.google.com/a/chromium.org/chromedriver/.
Обновите драйвер Chrome в папке Selenium. Это немного сложно, потому что находится в скрытой папке на вашем ПК под названием AppData. Вот как я это сделал на своем компьютере (Windows 7):
C: > пользователи > ваш пользователь > \AppData (вам нужно написать это в поле пути к папке, так как это скрытая папка) > Local (это имя папки на португальском языке, возможно, у вас будет другое имя) > СеленБазовый
Там вы найдете приложение chromedriver. Просто переименуйте его (если он не работает, вам нужна более старая версия), а затем вставьте новейший выпуск.
Недавно у меня была такая же проблема. Это была моя ошибка:
System.InvalidOperationException : session not created: This version of ChromeDriver only supports Chrome version 76 (SessionNotCreated)
Это исправление сработало для меня:
[project_folder]\bin\Debug\netcoreapp2.1)Вы можете указать точную версию вашей установки Chrome следующим образом:
webdriver-manager update --versions.chrome 73.0.3683.75
Возможно, вам нужно сначала сделать webdriver-manager clean в случае понижения.
Убедитесь, что у вас установлена последняя версия webdriver-manager. Вы можете установить то же самое, используя npm i webdriver-manager@latest --save
Затем выполните следующее
command.webdriver-manager update
У меня была такая же проблема, и я решил ее, просто загрузив файл chromedriver для предыдущей версии Chrome. Я обнаружил, что версия 79 Chrome совместима с текущей версией Selenium.
Затем я сохранил его по указанному пути и связал этот путь со своим webdriver.
Точные шаги указаны в этой ссылке: http://chromedriver.chromium.org/downloads
Столкнулся с этой проблемой и смог решить ее двумя основными шагами:
brew cask upgrade chromedriver
chrome://settings/help или cmd + ,, затем нажмите на справку в конце (на ваш выбор)
оттуда вы должны попасть на страницу «О Chrome». Здесь вам нужно будет убедиться, что вы используете последнюю и самую лучшую версию (проблема, с которой я столкнулся, связана с несоответствием в cli и текущей версии Chrome)
если вы получите сообщение об ошибке, вы увидите кнопку основного действия update & relaunch.
после «перезапуска» Chrome теперь будет самая новая версия, соответствующая вашему кли
пример:
Google Chrome is up to date
Version 80.0.3987.87 (Official Build) (64-bit)
$ which chromedriver
/usr/local/bin/chromedriver
$ chromedriver --version
ChromeDriver 78.0.3904.105
Я скачал zip-файл с https://chromedriver.chromium.org/downloads
В нем говорится: «Если вы используете Chrome версии 79, загрузите ChromeDriver 79.0.3945.36».
и я использовал Chrome версии 79. (Я проверил chrome://settings/help) По-видимому, ошибка для меня была «Эта версия ChromeDriver поддерживает только Chrome версии 78»
Затем я щелкнул zip-файл и переместил этот файл «chromedriver» в каталог /usr/local/bin/. Это решило проблему.
$ which chromedriver
$ chromedriver --version
ChromeDriver 79.0.3945.36
просто перейдите по этому URL-адресу в браузере Chrome
chrome://settings/help
и хром будет автоматически искать обновления (обновите хром до последней версии)
финиш :)
Я действительно не верю, что это было так просто, спасибо, чувак.
у меня была похожая проблема, только что обновил диспетчер веб-драйверов на Mac, используйте это в терминале, чтобы обновить диспетчер веб-драйверов.
sudo webdriver-manager update
Для загрузки версии Google Chrome посетите сайт = chromedriver.chromium.org
Я проверил версию своего браузера Google Chrome, установленного на моем компьютере, а затем загрузил ChromeDriver, подходящий для моей версии браузера. Вы можете скачать его с https://chromedriver.chromium.org/
У меня была похожая проблема на моем mac os bigsur В 2021 году на Mac правильная команда варить обновление --cask chromedriver это решить проблему
Загрузите эту старую версию. Работает отлично! >>---> chromedriver.storage.googleapis.com/index.html?path=2.46