Próbuję uruchomić RSelenium za pomocą funkcji rsDriver, ale po uruchomieniu
rD <- rsDriver()
pojawia się komunikat informujący mnie, że potrzebuję nowszej wersji 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.
Wydaje się, że komunikat o błędzie mówi, że potrzebuję Chrome w wersji 74.0.3729.6, ale kiedy patrzę w ustawienia Chrome, mówi mi, że mam najnowszą stabilną wersję (73.0.3683.75). Po dalszym googlowaniu, 74.0.3729.6 to przedpremierowa wersja deweloperska Chrome: czy muszę ją zainstalować, aby używać ChromeDriver z RSelenium?
Nie jestem przywiązany do pomysłu korzystania z Chrome, ale nie udało mi się zmusić rsDriver do korzystania z Firefoksa: kiedy browser = "firefox"
określę, rsDriver wyświetla ten sam komunikat o błędzie, że ChromeDriver nie obsługuje mojej wersji Chrome.
Informacje o mojej sesji to:
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
źródło
Odpowiedzi:
Dziś napotkałem ten sam problem i znalazłem ten post i inne z Google. Myślę, że mogę mieć bardziej bezpośrednie rozwiązanie jako modyfikację twojego kodu. Poprzednia odpowiedź jest prawidłowa, jeśli chodzi o identyfikację niezgodności w wersjach.
Wypróbowałem proponowane rozwiązania bezskutecznie. Okazało się, że wersje na moim komputerze są poprawne. Jednak ten błąd niezgodności nie wynikał z rzeczywistych wersji zainstalowanych na komputerze, ale raczej kod RSelenium szuka domyślnego argumentu „najnowszej” wersji Chrome / ChromeDriver. Zobacz
?rsDriver()
stronę pomocy dla argumentów.Jeśli uruchomisz kod
binman::list_versions("chromedriver")
zgodnie z dokumentacją pomocy, możesz zidentyfikować wersje zgodne z funkcją. W moim przypadku udało mi się użyć następującego kodu do nawiązania połączenia.driver <- rsDriver(browser=c("chrome"), chromever="73.0.3683.68", extraCapabilities = eCaps)
Powinieneś być w stanie określić swoją wersję Chrome za pomocą
chromever=
argumentu. Musiałem jednak użyć najbliższej wersji (moja wersja Chrome to „73.0.3683.75”).Mam nadzieję że to pomoże!
źródło
available.versions<-binman::list_versions("chromedriver") latest.version = available.versions$win32[length(available.versions)]
Dzięki za to!W przypadku aktualizacji chromedriver do MacOS załatwiła sprawę:
źródło
chromedriver-beta
, czego używałem, który spodziewałem się późniejszej wersji Chrome. Więc co zrobiłem:brew cask uninstall chromedriver-beta; brew cask install chromedriver
rm /usr/local/bin/chromedriver
a następnie,brew cask install chromedriver
aby uzyskać najnowszą wersję. W każdym razie rozwiązaniem była modernizacja chromedriver.Ten komunikat o błędzie ...
... oznacza, że ChromeDriver oczekuje, że wersja przeglądarki Chrome będzie 74 .
Szybka instalacja najnowszego ChromeDriver
Aby zainstalować najnowszą wersję ChromeDriver , możesz użyć:
brew tap homebrew/cask && brew cask install chromedriver
sudo apt-get install chromium-chromedriver
choco install chromedriver
Analiza
Twoim głównym problemem jest niezgodność między wersjami plików binarnych, których używasz w następujący sposób:
Istnieje więc wyraźna niezgodność między ChromeDriver w wersji 74.0.3729.6 i Chrome Browser w wersji 73.0
Rozwiązanie
@Test
.driver.quit()
w ramachtearDown(){}
metody, aby z wdziękiem zamknąć i zniszczyć instancje WebDriver i Web Client .Odniesienie
Odpowiednie szczegółowe omówienie można znaleźć w:
źródło
rD <- rsDriver()
, kończący się na:[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.
Selenium
. Ta odpowiedź nie odnosi sięR
aniRSelenium
wcale. Ta zaakceptowana odpowiedź powinna być odpowiedzią @CAD poniżej.Aktualizacja wersji Google Chrome do 74 zadziałała dla mnie.
Kroki: 1. Przejdź do Pomoc -> O Google Chrome -> Chrome automatycznie wyszuka aktualizacje (zaktualizuj Chrome do najnowszej wersji)
źródło
Musiałem przeinstalować kątomierz, aby wyciągnąć zaktualizowany
webdriver-manager
moduł. Ponadto, zgodnie z komentarzem @ Marka,package-lock.json
może blokować zależność.Następnie sprawdź
maxChromedriver
wartośćnode_modules/protractor/node_modules/webdriver-manager/config.json
po ponownej instalacji, aby sprawdzić, czy jest zgodna z żądaną wersją sterownika Chrome.źródło
package-lock.json
Został blokowania zależność. To nie jest błąd, wystarczy zaktualizować zależności.Rozwiązałem ten problem dzisiaj i aktualizacja mojego webdrivermangera rozwiązała go dla mnie (moja poprzednia wersja to 3.0.0):
źródło
Właśnie napotkałem ten sam rodzaj błędu przy
RSelenium::rsDriver()
domyślnymchromever = "latest"
ustawieniu, co spowodowało nieudaną próbę połączeniachromedriver 75.0.3770.8
z najnowszymgoogle-chrome-stable 74.0.3729.157
:Ponieważ wydaje się, że jest to powtarzający się i dość irytujący problem, wymyśliłem następujące obejście, aby zawsze używać najnowszej zgodnej wersji ChromeDriver :
Powyższy kod jest testowany tylko pod Linuksem i wykorzystuje kilka pakietów tidyverse (zainstaluj je wcześniej lub przepisz w podstawowym R). W przypadku innych systemów operacyjnych może być konieczne trochę dostosowanie, w szczególności zastąpienie
command = "google-chrome-stable"
poleceniem specyficznym dla systemu, aby uruchomić Google Chrome:Na MacOS powinien być wystarczający, aby wymienić
command = "google-chrome-stable"
zcommand = "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
.W systemie Windows błąd związany z platformą uniemożliwia nam bezpośrednie wywołanie pliku binarnego przeglądarki Google Chrome w celu uzyskania numeru wersji. Zamiast tego wykonaj następujące czynności:
Zasadniczo kod zapewnia tylko, że najnowsza wersja sterownika ChromeDriver pasująca do numeru wersji głównej poprawki stabilnej przeglądarki Google Chrome w systemie jest przekazywana jako
chromever
argument. Ta procedura powinna być zgodna z oficjalnym schematem wersji ChromeDriver . Zacytować:źródło
Naprawdę zmagałem się z tym niedopasowaniem między ChromeDriver w wersji 74.0.3729.6 a przeglądarką Chrome w wersji 73.0. W końcu znalazłem sposób na przeniesienie ChromeDrivera do wcześniejszej wersji,
W Chrome> O Google Chrome skopiuj numer wersji, z wyjątkiem ostatniej grupy. Na przykład 72.0.3626.
Wklej tę wersję na końcu tego adresu URL i odwiedź ją. Wróci z wersją, którą powinieneś skopiować. https://chromedriver.storage.googleapis.com/LATEST_RELEASE_
Wróć do wiersza poleceń, uruchom
bundle exec chromedriver-update <copied version>
źródło
Travis CI
Miałem ten sam problem w Travisie i rozwiązałem go dodając:
do mojego
.travis.yml
pliku.źródło
Alternatywa dla Travisa CI
Inna odpowiedź, odkąd Francesco Borzi nie zadziałała dla mnie.
Dodaj to do swojego travis.yml:
Wielkie dzięki i uznanie dla tagliali na githubie:
https://github.com/diowa/ruby2-rails5-bootstrap-heroku/commit/6ba95f33f922895090d3fabc140816db67b09672
źródło
To rozwiązanie zadziałało dla mnie
driver <- rsDriver(browser=c("chrome"), chromever="73.0.3683.68")
źródło
Nie ma już potrzeby obniżania wersji Chrome, gdy pojawi się ten błąd, oznacza to tylko, że czas
webdriver-manager update
zacząć ponownieźródło
Wpadłem na ten problem i udało mi się rozwiązać w 2 głównych krokach:
1 - Zaktualizuj do najnowszej wersji chromedriver przez homebrew cli
2 - aktualizacja do najnowszej wersji za pośrednictwem Chrome GUI
chrome: // settings / help lub
cmd
+,
następnie dołączenie pomocy na końcu (twój wybór)stamtąd powinieneś znaleźć się na stronie Chrome - informacje. Tutaj musisz sprawdzić, czy korzystasz z najnowszej i najlepszej wersji (problem, na który się natknąłem, wynikał z niezgodności w CLI z obecną wersją Chrome)
jeśli pojawi się błąd, zobaczysz
update & relaunch
główny przycisk akcji.po ponownym uruchomieniu Chrome będzie miał najnowszą wersję pasującą do Twojej CLI
przykład:
źródło
po prostu przejdź do tego adresu URL w przeglądarce Chrome
a chrome automatycznie wyszuka aktualizacje (zaktualizuj Chrome do najnowszej wersji)
koniec :)
źródło
Ten sam błąd wystąpił, gdy używam platformy robota (platformy opartej na Selenium) w instancji platformy Docker . Powodem było to, że docker używał pamięci podręcznej
google-chrome-stable_current_amd64.deb
dla Chrome, ale zainstalował najnowszy sterownik Chrome, który był późniejszą wersją.Następnie użyłem poniższego polecenia i błąd został rozwiązany.
Mam nadzieję, że to komuś pomoże.
źródło
Miałem ten sam błąd:
Testy przeprowadzamy z komputera, który nie ma prawdziwego interfejsu użytkownika, więc musiałem pracować za pomocą wiersza poleceń (CLI).
Zacząłem od wykrycia aktualnej wersji Chrome, która była zainstalowana na komputerze z systemem Linux:
Otrzymałem tę odpowiedź:
Więc zaktualizowałem wersję Chrome w ten sposób:
A po ponownym sprawdzeniu wersji otrzymałem to:
Wtedy testy Selenium przebiegały bezproblemowo.
źródło
Po prostu zaktualizuj kątomierz:
npm install protractor @ latest --save-dev
źródło
Możesz określić dokładną wersję instalacji Chrome w następujący sposób:
webdriver-manager update --versions.chrome 73.0.3683.75
Może musisz zrobić
webdriver-manager clean
pierwszy w przypadku obniżenia wersji.źródło
Pobrałem plik zip z https://chromedriver.chromium.org/downloads. Jest tam napis „Jeśli używasz Chrome w wersji 79, pobierz ChromeDriver 79.0.3945.36” i używam Chrome w wersji 79. (Sprawdziłem
chrome://settings/help
) Najwyraźniej Wystąpił błąd „Ta wersja ChromeDriver obsługuje tylko Chrome w wersji 78”Następnie kliknąłem plik zip i przeniosłem ten plik „chromedriver” do
/usr/local/bin/
katalogu. To rozwiązało problem.źródło
Jest to przydatne dla osób korzystających z Linuksa. Mój problem był trywialny, użyłem przeglądarki Chrome. Zainstalowałem chrome i wszystkie problemy zostały rozwiązane. Może działać z chromem, ale z dodatkowymi akcjami. Nie odniosłem sukcesu. Mogę ustawić wymaganą wersję sterownika do konfiguracji kątomierza. Używał najnowszego. Potrzebowałem obniżenia.
źródło
Mam prawie te same problemy, takie jak ten, problemy pojawiają się w rurociągu podczas wykonywania mojego testu selenu, który wymaga pakietu chromedriver do uruchomienia testu e2e.
Mój potok kompilacji błędów
Problem jest po prostu dlatego, że w potoku (w moim przypadku) jest wersja Chrome 73, a mój pakiet chromedriver jest zainstalowany w wersji 74.
źródło
Korzystanie z programu Visual Studio
Nie mogłem rozwiązać niezgodności wersji, postępując zgodnie z żadną z odpowiedzi podczas korzystania z programu Visual Studio, ale po prostu zaktualizowałem pakiety nuget Selenium.WebDriver i Selenium.WebDriver.ChromeDriver do najnowszych wersji.
Używałem Chrome v78, a aktualizacja chromedriver do v78 nadal powodowała błąd niezgodności. Odpowiedź CAD doprowadziła mnie do rozwiązania.
źródło
Ten sam problem spotkał mnie dzisiaj.
Moje rozwiązanie:
Pobierz najnowszą stabilną wersję chromedriver: https://sites.google.com/a/chromium.org/chromedriver/
Zaktualizuj sterownik chrome w folderze Selenium. Jest to trochę trudne, ponieważ znajduje się w ukrytym folderze na komputerze o nazwie AppData. Oto jak to zrobiłem na moim komputerze (Windows 7):
C:> użytkownicy> twój użytkownik> \ AppData (musisz to zapisać w polu ścieżki folderu, ponieważ jest to folder ukryty)> Lokalny (to jest nazwa folderu w języku portugalskim, może będzie miał dla ciebie inną nazwę) > SelenBasic
Znajdziesz tam aplikację chromedriver. Po prostu zmień jego nazwę (jeśli nie działa, chcesz mieć starszą wersję) i wklej najnowszą wersję.
źródło
Ostatnio miałem ten sam problem. To był mój błąd:
Ta poprawka zadziałała dla mnie:
[project_folder]\bin\Debug\netcoreapp2.1
)źródło
Upewnij się, że masz najnowszą wersję programu webdriver-manager. Możesz zainstalować to samo za pomocą
npm i webdriver-manager@latest --save
Następnie wykonaj następujące czynności
źródło
Miałem ten sam problem i rozwiązałem go, po prostu pobierając plik
chromedriver
plik dla poprzedniej wersji Chrome. Odkryłem, że wersja 79 przeglądarki Chrome jest kompatybilna z aktualną wersją Selenium.Następnie zapisałem go w określonej ścieżce i połączyłem tę ścieżkę z my
webdriver
.Dokładne kroki są określone w tym linku: http://chromedriver.chromium.org/downloads
źródło
Miałem podobny problem, właśnie zaktualizowałem menedżera webdriver na Macu, użyj tego w terminalu, aby zaktualizować menedżera webdriver-
źródło
Aby pobrać wersję Google Chrome, odwiedź witrynę = chromedriver.chromium.org
źródło
Sprawdziłem wersję mojej przeglądarki Google Chrome zainstalowaną na moim komputerze, a następnie
ChromeDriver
pobrałem wersję dostosowaną do wersji mojej przeglądarki. Możesz go pobrać z https://chromedriver.chromium.org/źródło