programing

세션이 생성되지 않음:이 버전의 ChromeDriver는 셀레늄을 사용하는 ChromeDriver Chrome에서 Chrome 버전 74 오류만 지원합니다.

javamemo 2023. 7. 4. 21:39
반응형

세션이 생성되지 않음:이 버전의 ChromeDriver는 셀레늄을 사용하는 ChromeDriver Chrome에서 Chrome 버전 74 오류만 지원합니다.

함수를 IrsDriver를 실행할 때 Rselenium을 합니다.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.

크롬 버전 74.0.3729.6이 필요하다는 에러 메시지가 뜨는데 크롬 설정을 보니 최신 안정 버전(73.0.3683.75)을 실행하고 있다고 합니다.추가로 구글링하면 74.0.3729.6은 크롬의 사전 릴리스 개발 버전입니다. R셀레늄과 함께 크롬 드라이버를 사용하려면 이것을 설치해야 합니까?

는 크롬을하는 것에 에 집착하지는 파이어폭스를 : 때, 파이어폭스를 사용하는 것은 파이어폭스를 사용합니다.browser = "firefox"가 내 의 ChromersDriver를 하지 않는 한 오류 합니다. rsDriver 는 ChromeDriver 내을 가 ChromeDriver 다전합의니버시하표다시지류는한는일원지동를오메않지을▁rs▁message다▁me니▁error▁about▁chrome합▁same.

내 세션 정보:

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

MacOS 크롬 드라이버 업그레이드의 경우 다음과 같은 이점이 있었습니다.

brew upgrade --cask chromedriver

이 오류 메시지...

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)

...ChromeDriverChromeBrowser 버전74일 것으로 예상합니다.


최신 Chrome 드라이버의 빠른 설치

최신 버전의 ChromeDriver를 설치하려면 다음을 사용합니다.

  • 홈브루를 사용하는 Mac 사용자:brew tap homebrew/cask && brew cask install chromedriver
  • 데비안 기반 리눅스 배포판:sudo apt-get install chromium-chromedriver
  • Chocolatey가 설치된 Windows 사용자:choco install chromedriver

분석.

다음과 같이 사용 중인 바이너리 버전 간의 비호환성이 주요 문제입니다.

Chrome v74 지원

  • 현재 릴리스된 chrome=73.0을 사용하고 있습니다.

따라서 ChromeDriver v74.0.3729.6과 ChromeBrowser v73.0 사이에는 명확한 불일치가 있습니다.


해결책

  • ChromeDriver를 ChromeDriver v73.0.3683.68 수준으로 다운그레이드합니다.
  • Chrome 버전을 Chrome v73 수준으로 유지합니다.(ChromeDriver v73.0.3683.68 릴리스 정보에 따름)
  • IDE를 통해 프로젝트 작업 공간을 정리하고 필요한 종속성으로만 프로젝트를 재구성합니다.
  • 기본 Web Client 버전이 너무 오래된 경우 이 버전을 제거하고 최신 GA 및 릴리스 버전의 Web Client를 설치합니다.
  • 을 합니다.@Test.
  • 상항호를 합니다.driver.quit()에 내에tearDown(){} 드라이버 및 웹 클라이언트 인스턴스를 정상적으로 닫고 삭제하는 방법입니다.

언급

관련 자세한 내용은 다음에서 확인할 수 있습니다.

저는 오늘 같은 문제에 직면했고 구글에서 이 게시물과 다른 것들을 찾았습니다.저는 당신의 코드를 수정하기 위해 좀 더 직접적인 해결책이 있을 것 같습니다.이전 답변은 버전의 불일치를 식별하는 데 정확합니다.

저는 제안된 해결책을 시도했지만 소용이 없었습니다.내 컴퓨터에서 버전이 정확하다는 것을 발견했습니다.그러나 이 불일치 오류는 컴퓨터에 설치된 실제 버전에서 발생한 것이 아니라 RSelenium 코드가 기본 인수로 "최신" 버전의 Chrome/ChromeDriver를 찾고 있습니다.» ?rsDriver()인수에 대한 도움말 페이지입니다.

코를실는경우하행드▁the▁code를 실행하면binman::list_versions("chromedriver")도움말 설명서에 지정된 대로 이 기능과 호환되는 버전을 식별할 수 있습니다.저의 경우, 다음 코드를 사용하여 연결을 설정할 수 있었습니다.

driver <- rsDriver(browser=c("chrome"), chromever="73.0.3683.68", extraCapabilities = eCaps)

은 당신은버전신의당합지니다있수어야로 의 크롬 할 수 입니다.chromever= 가장가까운 을 사용해야 크롬 하지만 저는 가장 가까운 버전을 사용해야 했습니다(제 크롬 버전은 "73.0.3683.75"였습니다.

이것이 도움이 되길 바랍니다!

구글 크롬 버전74로 업데이트하는 것이 저에게 효과가 있었습니다.

단계: 1.도움말로 이동 -> Google Chrome 정보 -> Chrome이 자동으로 업데이트를 찾습니다(Chrome을 최신 버전으로 업데이트).

enter image description here

업데이트된 내용을 끌어내기 위해 프로젝터를 다시 설치해야 했습니다.webdriver-manager@@Mark님의 @Mark님의 Mark님의 @Mark님의 @Mark님은package-lock.json종속성을 잠그고 있을 수 있습니다.

npm uninstall protractor
npm install --save-dev protractor

그다에확반, 세요하인시드음을 반드시 .maxChromedriver에 가치가 있는.node_modules/protractor/node_modules/webdriver-manager/config.json다시 설치하여 원하는 Chrome 드라이버 버전과 일치하는지 확인합니다.

갱신하다

원래 답변에서 제안한 ChromeDriver 버전 선택 로직을 추가하여 Relenium에 풀 요청을 제출했습니다.병합될 때까지(가능한 경우) 다음을 사용하여 설치할 수 있습니다.

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())

위의 코드는 Linux에서만 테스트되며 일부 깔끔한 버전의 패키지를 사용합니다(사전에 설치하거나 기본 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())
    

기본적으로, 이 코드는 시스템의 안정적인 구글 크롬 브라우저의 메이저-마이너-패치 버전 번호와 일치하는 최신 크롬 드라이버 버전이 다음과 같이 전달되도록 합니다.chromever논쟁.이 절차는 공식 ChromeDriver 버전 관리 체계를 준수해야 합니다.인용문:

  • ChromeDriver는 Chrome과 동일한 버전 번호 체계를 사용합니다(...).
  • ChromeDriver의 각 버전은 일치하는 major, minor 및 build 버전 번호를 가진 Chrome을 지원합니다.예를 들어 ChromeDriver 73.0.3683.20은 73.0.3683으로 시작하는 모든 Chrome 버전을 지원합니다.

오늘 이 문제를 해결했고 웹 드라이버 관리자를 업그레이드하여 해결했습니다(이전 버전은 3.0.0).

<dependency>
    <groupId>io.github.bonigarcia</groupId>
    <artifactId>webdrivermanager</artifactId>
    <version>3.3.0</version>
    <scope>test</scope>
</dependency>

Travis CI 대안

프란체스코 보르지 이후로 또 다른 대답은 제게 통하지 않았습니다.

트래비스에 추가합니다.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

github에 있는 tagliala에게 많은 감사와 감사를 드립니다.

https://github.com/diowa/ruby2-rails5-bootstrap-heroku/commit/6ba95f33f922895090d3fabc140816db67b09672

ChromeDriver v74.0.3729.6과 ChromeBrowser v73.0 사이의 불일치로 인해 정말 어려움을 겪었습니다.마침내 크롬 드라이버를 이전 버전으로 전환하는 방법을 찾았습니다.

  1. Chrome > Google Chrome 정보에서 마지막 그룹을 제외한 버전 번호를 복사합니다.예를 들어 72.0.3626입니다.

  2. 이 URL 끝에 해당 버전을 붙여넣고 방문하십시오.복사해야 하는 버전과 함께 반환됩니다.https://chromedriver.storage.googleapis.com/LATEST_RELEASE_

  3. 명행으로실니다합행서돌아를 합니다.bundle exec chromedriver-update <copied version>

트래비스 CI

Travis에서도 동일한 문제가 있었고 다음과 같이 추가하여 해결했습니다.

addons:
  chrome: stable

나에게.travis.ymljava.

$ which chromedriver
/usr/local/bin/chromedriver
$ chromedriver --version
ChromeDriver 78.0.3904.105

https://chromedriver.chromium.org/downloads 에서 zip 파일을 다운받았는데 "Chrome 버전 79를 사용하는 경우 ChromeDriver 79.0.3945.36을 다운로드하십시오"라고 되어 있고, 저는 Chrome 버전 79를 사용하고 있었습니다. (확인했습니다.)chrome://settings/help가 보기에 "이라는 오류가 있었습니다.

을 그런다다 zip "chromedriver" 음으이로 이동했습니다./usr/local/bin/디렉토리입니다.그것으로 문제가 해결되었습니다.

$ which chromedriver
$ chromedriver --version
ChromeDriver 79.0.3945.36

이 솔루션은 저에게 효과가 있었습니다.

  1. R 3.5.3 이상을 사용하고 있는지 확인합니다.
  2. driver <- rsDriver(browser=c("chrome"), chromever="73.0.3683.68")

이 문제가 발생하여 2가지 주요 단계로 해결할 수 있었습니다.

1 - 홈브루 CLI를 통해 최신 크롬 드라이버로 업데이트

brew cask upgrade chromedriver

2 - Chrome GUI를 통해 최신 버전으로 업데이트

또는 chrome://help/help ㅠㅠcmd+,그런 다음 마지막에 도움을 요청합니다(당신의 선택).

거기서 크롬 소개 페이지로 이동해야 합니다.여기서 최신 버전과 최신 크롬 버전의 불일치로 인해 발생한 문제를 확인해야 합니다.

만약 당신이 오류를 얻는다면, 당신은 볼 것입니다.update & relaunch기본 작업 단추.

크롬 "재출시" 이후에 그것은 이제 당신의 CLI와 일치하는 최신 버전을 가질 것입니다.

예:

Google Chrome is up to date
Version 80.0.3987.87 (Official Build) (64-bit)

도커 인스턴스에서 로봇 프레임워크(셀레늄 기반 프레임워크)를 사용할 때도 동일한 오류가 발생했습니다.도커가 캐시를 사용했기 때문입니다.google-chrome-stable_current_amd64.debChrome용이지만 최신 버전인 Chrome 드라이버를 설치했습니다.

그런 다음 아래 명령을 사용하여 오류를 해결했습니다.

docker-compose build --no-cache

이것이 누군가에게 도움이 되기를 바랍니다.

저도 같은 오류에 직면했습니다.

세션이 생성되지 않음:이 버전의 ChromeDriver는 Chrome 버전 75만 지원합니다.

...

드라이버 정보: driver.version:크롬 드라이버

우리는 실제 UI가 없는 컴퓨터에서 테스트를 실행하고 있기 때문에 명령줄(CLI)을 통해 작업해야 했습니다.

Linux 컴퓨터에 설치된 현재 버전의 Chrome을 검색하는 것으로 시작했습니다.

$> google-chrome --version

그리고 다음과 같은 응답을 받았습니다.

Google Chrome 74.0.3729.169

그래서 저는 크롬 버전을 다음과 같이 업데이트했습니다.

$> sudo apt-get install google-chrome-stable

버전을 다시 확인한 결과 다음과 같이 확인되었습니다.

Google Chrome 75.0.3770.100

그리고 나서 셀레늄 테스트는 부드럽게 실행될 수 있었습니다.

크롬을 더 이상 다운그레이드할 필요가 없습니다. 이 오류가 발생하면 실행할 시간입니다.webdriver-manager update다시

다음과 같이 Chrome 설치의 정확한 버전을 지정할 수 있습니다.

webdriver-manager update --versions.chrome 73.0.3683.75

아마도 당신은 할 필요가 있습니다.webdriver-manager clean다운그레이드의 경우 첫 번째.

저도 같은 문제가 있었고 단순히 다운로드만 하면 해결했습니다.chromedriver이전 버전의 Chrome 파일입니다.Chrome 79 버전이 현재 버전의 Selenium과 호환된다는 것을 알게 되었습니다.

경로로 하고, 그를 나의 그런다지경저해고연경결다니습했로를당하장로에정음된▁my▁that▁to다,▁i니▁then▁it습연결▁path▁in했에 연결했습니다.webdriver.

정확한 단계는 다음 링크에 명시되어 있습니다. http://chromedriver.chromium.org/downloads

프로젝터를 업데이트하기만 하면 됩니다.

npm install protractor@latest --save-dev

저는 이와 같은 거의 같은 문제를 가지고 있습니다. e2e 테스트를 실행하기 위해 크롬 드라이버 패키지가 필요한 셀레늄 테스트를 실행할 때 파이프라인 내부에서 문제가 발생합니다.

오류 빌드 파이프라인

문제는 파이프라인(나의 경우)에 크롬 버전 73이 설치되어 있고 크롬 드라이버 패키지가 버전 74에 설치되어 있기 때문입니다.

마지막으로 두 가지 간단한 솔루션이 있습니다.

  1. 크롬 다운그레이드
  2. 크롬 드라이버 패키지 버전을 다운그레이드합니다.나의 경우, 파이프라인 내부에서 실행하기 때문에 아래 표시된 것처럼 셀레늄 테스트를 실행하기 전에 크롬 드라이버를 설치해야 합니다.

    - script: npm install chromedriver@73.0.0 --chromedriver-force-download displayName: 'Install Chrome'

오늘도 같은 문제가 저에게 발생했습니다.

내 솔루션:

크롬 드라이버의 최신 안정적인 릴리스 다운로드: https://sites.google.com/a/chromium.org/chromedriver/

셀레늄 폴더에서 크롬 드라이버를 업데이트합니다.앱데이터라는 PC의 숨겨진 폴더에 있기 때문에 이것은 조금 어렵습니다.컴퓨터(Windows 7)에서 수행한 작업은 다음과 같습니다.

C: > 사용자 > 사용자 > \AppData (숨겨진 폴더이므로 폴더 경로 상자에 작성해야 함) > 로컬(포르투갈어로 된 폴더 이름으로, 다른 이름이 있을 수 있음) > 셀레늄 베이직

여기서 크롬 드라이버 애플리케이션을 찾을 수 있습니다.이름만 바꾸고(작동하지 않는 경우 이전 버전을 사용하려는 경우) 최신 릴리스를 붙여넣으면 됩니다.

저도 최근에 똑같은 문제를 겪었습니다.이것은 나의 실수였습니다.

System.InvalidOperationException : session not created: This version of ChromeDriver only supports Chrome version 76 (SessionNotCreated)

이 해결책은 나에게 효과가 있었습니다.

  • 실행 중인 chromedriver.exe 프로세스가 없는지 확인합니다(필요한 경우 작업 관리자를 통해 모두 삭제).
  • 파일을 내 경우에는 bin 이여동하로더 chromedriverexe 파일을 삭제합니다(나의 경우:[project_folder]\bin\Debug\netcoreapp2.1)

웹 드라이버 관리자의 최신 버전이 있는지 확인합니다.다음을 사용하여 동일하게 설치할 수 있습니다.npm i webdriver-manager@latest --save

그런 다음 다음을 실행합니다.

command.webdriver-manager update

나는 내 macos bigsur에서 유사한 문제가 있었습니다 2021년, mac에서 올바른 명령은 다음과 같습니다.

brew upgrade --cask chromedriver 

언급URL : https://stackoverflow.com/questions/55201226/session-not-created-this-version-of-chromedriver-only-supports-chrome-version-7

반응형