ไม่ได้สร้างเซสชัน: ChromeDriver รุ่นนี้รองรับข้อผิดพลาด Chrome รุ่น 74 เท่านั้นกับ ChromeDriver Chrome โดยใช้ Selenium


164

ฉันพยายามเรียกใช้ 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) จาก googling ต่อไป 74.0.3729.6 เป็น Chrome รุ่น dev รุ่นก่อนวางจำหน่าย: ฉันต้องติดตั้งสิ่งนี้เพื่อใช้ 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

1
ดาวน์โหลดเวอร์ชั่นเก่านี้ ทำงานได้ดี! >> ---> chromedriver.storage.googleapis.com/index.html?path=2.46
Nelson Carvalho

1
ในกรณีของฉันหากข้อผิดพลาดแจ้งว่ารองรับเฉพาะรุ่น 76 ฉันไม่สามารถใช้ chrome 76.xxx ได้ ถ้าฉันปรับลดรุ่นเป็น 75.xxx มันบอกว่ารองรับเฉพาะรุ่น 75 หากฉันลองใช้รุ่นล่าสุด (ปัจจุบัน 78) มันใช้งานได้
BingLi224

@ BingLi224 ใช้ซีลีเนียมและไพ ธ อนรุ่นใด? ฉันพบปัญหาเดียวกันแม้ว่า Chrome เวอร์ชัน 78.0.3904.70
zzxwill

@zzxwill Selenium 3.141.0, Python 3.7.3, Chrome 78.0.3904.70 (ปัจจุบัน แต่ไม่แน่ใจว่ามันคืออะไรในขณะนั้น)
BingLi224

หากคุณมี choco คุณสามารถ "choco update chromedriver"
Aus10

คำตอบ:


36

ฉันพบปัญหาเดียวกันในวันนี้และพบโพสต์นี้และอื่น ๆ จาก 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")

หวังว่านี่จะช่วยได้!


1
คำตอบของ CAD ใช้งานได้สำหรับฉันด้วย Chrome caveat: // settings / help เพื่อดูและ / หรืออัปเดตเวอร์ชันเบราว์เซอร์ Chrome ของคุณ ในกรณีของฉันฉันคลิกอัปเดตเพื่ออัปเดตเป็นเวอร์ชัน: 73.0.3683.86 (Build ทางการ) (64 บิต)
user439089

ดูเหมือนว่าตัวแปรของคุณจะเหมาะสมกว่าสำหรับกรณีของฉัน แต่ฉันไม่สามารถหาวิธีพูดกับไม้โปรแทรกเตอร์เพื่อใช้รุ่นที่กำหนดไว้ได้ เช่นนี้ chromever = "73.0.3683.68" ในกรณีของฉัน ฉันใช้โครเมียมเบราว์เซอร์เวอร์ชั่นต่ำกว่าถามว่าไม้โปรแทรกเตอร์ นี่คือกรณีของฉันstackoverflow.com/questions/55984924/…
Victor Shelepen

2
โย่ท่านร็อค ฉันแก้ไขโค้ดนี้เล็กน้อยเพื่อใช้เวอร์ชันล่าสุดเสมอ: available.versions<-binman::list_versions("chromedriver") latest.version = available.versions$win32[length(available.versions)] ขอบคุณสำหรับสิ่งนี้!
StatsStudent

72

สำหรับการอัพเกรด Chromosriver ของ MacOS นั้นได้ทำการหลอกลวง:

brew cask upgrade chromedriver

เยี่ยมมากนี่ทำให้ฉันไปในทิศทางที่ถูกต้องยกเว้นว่าฉันใช้อยู่chromedriver-betaซึ่งคาดว่าจะเป็น Chrome รุ่นที่ใหม่กว่า ดังนั้นสิ่งที่ฉันทำ:brew cask uninstall chromedriver-beta; brew cask install chromedriver
แอนโทนี่ถึง

2
ใช้งานได้เฉพาะในกรณีที่คุณติดตั้ง Chromedriver ผ่านทาง Brew ฉันติดตั้งมันผ่านการดาวน์โหลดโดยตรงดังนั้นก่อนอื่นจึงต้องรันrm /usr/local/bin/chromedriverและbrew cask install chromedriverรับเวอร์ชันล่าสุด ไม่ว่าในกรณีใดการอัพเกรด Chromedriver เป็นวิธีแก้ปัญหา
ลูคัส

2
นี่ควรเป็นคำตอบที่ยอมรับได้แทนที่จะเป็นคำแนะนำในการลดระดับ Chrome
Guillaume Petit

นี่เป็นการแก้ไขปัญหาของฉัน
negrotico19

62

ข้อความผิดพลาดนี้ ...

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 ล่าสุดอย่างรวดเร็ว

หากต้องการติดตั้งChromeDriverเวอร์ชันล่าสุดคุณสามารถใช้:

  • ผู้ใช้ Mac ที่มี Homebrew :brew tap homebrew/cask && brew cask install chromedriver
  • Distros Linux ที่ใช้ Debian :sudo apt-get install chromium-chromedriver
  • ผู้ใช้ Windows ที่ติดตั้ง Chocolatey :choco install chromedriver

การวิเคราะห์

ปัญหาหลักของคุณคือความไม่ลงรอยกันระหว่างเวอร์ชันของไบนารีที่คุณใช้ดังนี้:

  • คุณกำลังใช้Chromedriver = 74.0.3729.6
  • บันทึกประจำรุ่นของchromedriver = 74.0.3729.6ระบุไว้อย่างชัดเจนดังต่อไปนี้:

รองรับChrome v74

  • คุณกำลังใช้chrome = 73.0 ที่วางจำหน่ายในปัจจุบัน

ดังนั้นจึงมีความไม่ชัดเจนระหว่างChromeDriver v74.0.3729.6และChrome Browser v73.0


สารละลาย

  • Downgrade ChromeDriverเพื่อv73.0.3683.68 ChromeDriverระดับ
  • ทำให้รุ่นChromeอยู่ในระดับChrome v73 ( ตามบันทึกย่อประจำรุ่นของ ChromeDriver v73.0.3683.68 )
  • ทำความสะอาดพื้นที่ทำงานโครงการของคุณผ่านIDEของคุณและสร้างโครงการของคุณใหม่ด้วยการพึ่งพาที่จำเป็นเท่านั้น
  • ถ้าฐานของคุณWeb Clientรุ่นเก่าเกินไปแล้วถอนการติดตั้งและติดตั้งรุ่นล่าสุด GA และปล่อยของWeb Client
  • @Testดำเนินการของคุณ
  • เรียกใช้driver.quit()ภายในtearDown(){}เมธอดเสมอเพื่อปิดและทำลายอินสแตนซ์WebDriverและเว็บไคลเอ็นต์อย่างสง่างาม

การอ้างอิง

คุณสามารถค้นหาการสนทนาโดยละเอียดที่เกี่ยวข้องได้ใน:


ฉันได้ลดระดับ ChromeDriver เป็น v73.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 ได้หรือไม่
Matthew Law

Web Client -> Chrome เบราว์เซอร์ , GA -> ทั่วไป Avaiibility , @Test -> คำอธิบายประกอบใช้ในการระบุการทดสอบโดยใช้JUnit / TestNG (คุณสามารถพิจารณาการทดสอบ )
DebanjanB

1
Seleniumนี่เป็นเพียงคำตอบทั่วไปเกี่ยวกับวิธีการแก้ไขปัญหาที่ไม่ตรงกันรุ่นเมื่อใช้ คำตอบนี้ไม่ได้อ้างถึงRหรือRSeleniumเลย คำตอบที่ยอมรับนี้ควรเป็นคำตอบโดย @CAD ด้านล่าง
conrad-mac

1
+1 สำหรับคำอธิบาย (สอนคนตกปลาและสิ่งนั้น) ฉันอัปเกรด Chromedriver เพื่อให้ตรงกับรุ่น Chrome ของฉัน (Chrome ความช่วยเหลือ -> เกี่ยวกับ - รุ่น) และได้รับการแก้ไข
HockeyJ

26

การอัปเดตเวอร์ชันGoogle Chromeเป็น74 ใช้งานได้สำหรับฉัน

ขั้นตอน: 1. ไปที่ความช่วยเหลือ -> เกี่ยวกับ Google Chrome -> Chrome จะค้นหาการอัปเดตโดยอัตโนมัติ (อัปเดต Chrome เป็นเวอร์ชันล่าสุด)

ป้อนคำอธิบายรูปภาพที่นี่


4
มันใช้งานได้ดีสำหรับฉัน ง่ายกว่าโซลูชันที่ยอมรับ
Anthony ถึง

22

ฉันต้องติดตั้งไม้โปรแทรกเตอร์เพื่อดึง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 ที่ต้องการ


2
ขอบคุณทำงานให้ฉัน ฉันมีไม้โปรแทรกเตอร์ (5.4.2) ล่าสุดติดตั้งอยู่ แต่ตัวจัดการเว็บที่ขึ้นต่อกันติดอยู่ที่ 12.1.4 การถอนการติดตั้งและติดตั้งไม้โปรแทรกเตอร์ทำให้ฉันมี webdriver-manager รุ่นใหม่ - 12.1.7
Kev

ขอบคุณทำงานให้ฉันด้วย ฉันมีปัญหาเช่นเดียวกับ Kev ที่อธิบายไว้ในความคิดเห็นก่อนหน้า ^
Toms Tumshais

1
นี่เป็นปัญหาสำหรับฉัน package-lock.jsonถูกล็อคพึ่งพา ไม่ใช่ข้อผิดพลาดเพียงแค่ต้องอัปเดตการอ้างอิง
ทำเครื่องหมาย

2
คุณสามารถอัปเดตคำตอบเพื่อรวมข้อมูลที่ @Mark ให้ไว้ อาจเป็นเรื่องสำคัญ (เป็นปัญหาที่แท้จริงที่ฉันมี)
39414

8

ฉันจัดการกับปัญหานี้ในวันนี้และอัปเกรด webdrivermanger แก้ไขให้ฉัน (เวอร์ชันก่อนหน้าของฉันคือ 3.0.0):

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

1
ฉันได้แก้ไขปัญหาเดียวกันโดยอัปเกรดเป็นรุ่น 3.3.0 แล้วขอบคุณ
Rajesh Om

1
ฉันอยู่ในรุ่น 1.x การอัปเดตเป็น 3.3.0 ได้รับการแก้ไขสำหรับฉันเช่นกัน
ArtOfWarfare

คุณต้องใช้เวอร์ชันล่าสุดซึ่งเป็น <version> 3.6.2 </version>
Neyomal

ฉันคิดว่าคำตอบนี้จะได้รับการปรับปรุงอย่างมากมายโดยรวมถึงขั้นตอนในการอัปเกรด "webdrivermanager" สิ่งที่คุณทำที่นี่มีให้ XML บางส่วนโดยไม่มีคำอธิบายมากนัก คุณต้องการอัปเดตคำตอบนี้พร้อมรายละเอียดเพิ่มเติมหรือไม่? ขอบคุณ
StatsStudent

7

ฉันเพิ่งพบข้อผิดพลาดชนิดเดียวกันโดยใช้การตั้งค่า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และใช้ประโยชน์จากแพ็คเกจtidyverse (ติดตั้งไว้ล่วงหน้าหรือเขียนใหม่ใน base R) สำหรับระบบปฏิบัติการอื่นคุณอาจต้องปรับตัวเล็กน้อยโดยเฉพาะแทนที่command = "google-chrome-stable"ด้วยคำสั่งเฉพาะระบบเพื่อเปิดใช้ Google Chrome:

  • บนMacOSก็ควรจะเพียงพอที่จะแทนที่ด้วยcommand = "google-chrome-stable"command = "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"

  • ใน Windows ข้อผิดพลาดเฉพาะของ plattformทำให้เราไม่สามารถเรียกไบนารีของ 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 ใช้ชุดรูปแบบหมายเลขเดียวกันกับ Chrome (... )
  • ChromeDriver แต่ละรุ่นรองรับ Chrome ที่มีหมายเลขหลักรองลงมาและสร้างหมายเลขรุ่นที่ตรงกัน ตัวอย่างเช่น ChromeDriver 73.0.3683.20 รองรับ Chrome ทุกรุ่นที่ขึ้นต้นด้วย 73.0.3683

3
ฮีโร่ที่เราต้องการ ขอบคุณ! PS: ฉันแก้ไขเพื่อรวมรหัส Windows เพื่อให้ง่ายขึ้นสำหรับผู้อ่านในอนาคต
ตุง

2
👍ฉันเพิ่งรวมมันอย่างถูกต้องตั้งแต่คุณทดสอบเสร็จแล้ว!
ซาลิม B

3

ฉันกำลังดิ้นรนกับความไม่ตรงกันนี้ระหว่าง ChromeDriver v74.0.3729.6 และ Chrome Browser v73.0 ในที่สุดฉันก็พบวิธีที่จะทำให้ ChromeDriver เป็นรุ่นก่อนหน้า

  1. ใน Chrome> เกี่ยวกับ Google Chrome ให้คัดลอกหมายเลขเวอร์ชั่นยกเว้นกลุ่มสุดท้าย ตัวอย่างเช่น 72.0.3626

  2. วางเวอร์ชันนั้นไว้ท้าย URL นี้แล้วเยี่ยมชม มันจะกลับมาพร้อมกับเวอร์ชันที่คุณควรคัดลอก https://chromedriver.storage.googleapis.com/LATEST_RELEASE_

  3. ย้อนกลับไปในบรรทัดคำสั่งรัน bundle exec chromedriver-update <copied version>


ฉันจำหน่ายเครื่องดื่มแก้ปัญหาและการเรียนการสอน - จะต้องมีคำตอบเช่นนี้แล้ว :)
Aleks


3

ทางเลือกของ Travis CI

คำตอบอีกข้อหนึ่งก็คือ Francesco Borzi ไม่ได้ทำงานให้ฉัน

เพิ่มไปยัง 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:

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


2

วิธีนี้ใช้ได้ผลสำหรับฉัน

  1. ตรวจสอบให้แน่ใจว่าคุณใช้ R 3.5.3 หรือสูงกว่า
  2. driver <- rsDriver(browser=c("chrome"), chromever="73.0.3683.68")

2

ไม่จำเป็นต้องปรับลดรุ่น Chrome อีกต่อไปเมื่อคุณได้รับข้อผิดพลาดนี้หมายความว่าถึงเวลาที่ต้องทำงานwebdriver-manager updateอีกครั้ง


2

พบปัญหานี้และสามารถแก้ไขได้ด้วย 2 ขั้นตอนหลัก:

1 - อัปเดตเป็น Chromedriver ล่าสุดผ่านทาง homebrew cli

brew cask upgrade chromedriver

2 - อัปเดตเป็นเวอร์ชันล่าสุดผ่าน Chrome GUI

chrome: // settings / help หรือcmd+ ,จากนั้นให้ทำการช่วยเหลือเมื่อสิ้นสุด (ตัวเลือกของคุณ)

คุณควรลงจอดที่หน้า About Chrome ที่นี่คุณจะต้องตรวจสอบว่าคุณเป็นเวอร์ชั่นล่าสุดและยอดเยี่ยมที่สุด (ปัญหาที่ฉันพบนั้นเกิดจากความไม่ตรงกันใน cli และรุ่น chrome ปัจจุบัน)

หากคุณได้รับข้อผิดพลาดคุณจะเห็นupdate & relaunchปุ่มการกระทำหลัก

หลังจาก chrome "เปิดตัวใหม่" ตอนนี้จะมีรุ่นใหม่ล่าสุดที่ตรงกับ cli ของคุณ

ตัวอย่าง:

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

2

เพียงไปที่ URL นี้ในเบราว์เซอร์โครม

 chrome://settings/help  

และ Chrome จะค้นหาการอัปเดตโดยอัตโนมัติ (อัปเดต Chrome เป็นเวอร์ชันล่าสุด)

เสร็จสิ้น :)


1

ฉันได้รับข้อผิดพลาดเดียวกันเมื่อฉันใช้กรอบงานหุ่นยนต์ (Selenium based framework) ในอินสแตนซ์Docker เหตุผลก็คือนักเทียบท่าใช้แคชgoogle-chrome-stable_current_amd64.debสำหรับ Chrome แต่ติดตั้งไดรเวอร์ Chrome ล่าสุดซึ่งเป็นรุ่นที่ใหม่กว่า

จากนั้นฉันก็ใช้คำสั่งด้านล่างและแก้ไขข้อผิดพลาด

docker-compose build --no-cache

หวังว่านี่จะช่วยใครซักคน


1

ฉันพบข้อผิดพลาดเดียวกัน:

ไม่ได้สร้างเซสชัน: ChromeDriver รุ่นนี้รองรับเฉพาะ Chrome รุ่น 75 เท่านั้น

...

ข้อมูลไดร์เวอร์: driver.version: ChromeDriver

เรากำลังรันการทดสอบจากคอมพิวเตอร์ที่ไม่มี UI จริงดังนั้นฉันต้องทำงานผ่าน command line (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

จากนั้นการทดสอบซีลีเนียมก็สามารถทำงานได้อย่างราบรื่น


สิ่งนี้ใช้ได้เมื่อติดตั้งเบราว์เซอร์โครมผ่าน repo / ppa และไม่สามารถอัปเดตตัวเองได้
prusswan

1

เพียงอัปเดตไม้โปรแทรกเตอร์

npm ติดตั้งไม้โปรแทรกเตอร์ @ latest --save-dev


1

คุณสามารถระบุรุ่นที่แน่นอนของการติดตั้ง Chrome ของคุณดังนี้:

webdriver-manager update --versions.chrome 73.0.3683.75

บางทีคุณอาจต้องทำสิ่งwebdriver-manager cleanแรกในกรณีที่มีการลดระดับ


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

ฉันดาวน์โหลดไฟล์ซิปจาก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

0

มันมีประโยชน์สำหรับคน Linux ปัญหาของฉันไม่สำคัญเลยฉันใช้โครเมียมเบราว์เซอร์ ฉันติดตั้ง Chrome แล้วปัญหาทั้งหมดได้รับการแก้ไข มันสามารถทำงานกับโครเมียม แต่มีการกระทำเพิ่มเติม ฉันไม่ได้รับความสำเร็จ ฉันสามารถตั้งค่ารุ่นไดรเวอร์ที่จำเป็นเพื่อกำหนดค่าไม้โปรแทรกเตอร์ มันใช้ล่าสุด ฉันต้องการปรับลดรุ่น


0

ฉันมีปัญหาเกือบเหมือนกันนี้ปัญหาเกิดขึ้นภายในท่อเมื่อทำการทดสอบซีลีเนียมของฉันที่ต้องใช้แพ็คเกจ Chromedriver เพื่อทำการทดสอบ e2e

ไปป์ไลน์ข้อผิดพลาดของฉันในการสร้าง

ปัญหาเป็นเพียงเพราะในไปป์ไลน์ (ในกรณีของฉัน) มีรุ่น chrome 73 และแพ็คเกจ Chromedriver ของฉันติดตั้งในรุ่น 74

ในที่สุดก็มีสองวิธีง่ายๆ:

  1. ลดระดับ Chrome ของคุณ
  2. ลดรุ่นแพ็คเกจ Chromedriver ของคุณ ในกรณีของฉันทำให้ฉันทำงานภายในท่อฉันจำเป็นต้องติดตั้ง Chromedriver ก่อนที่จะทำการทดสอบซีลีเนียมดังที่แสดงด้านล่าง

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


ฉันมีปัญหาเดียวกันฉันจะรู้ได้อย่างไรโครเมี่ยม - รุ่นบนโหนดเจนกินส์?
Chandresh Mishra

วิธีติดตั้ง chrome บนโหนดเป็นส่วนหนึ่งของ build ไปป์ถ้าไม่มี chrome
Chandresh Mishra

เพื่อติดตั้ง chrome เป็นส่วนหนึ่งของ build ไปป์คุณสามารถเพิ่ม task script ที่ใส่ไว้ด้านบน
Gadani

0

ใช้ Visual Studio

ฉันไม่สามารถแก้ไขรุ่นที่ไม่ตรงกันได้โดยทำตามคำตอบใด ๆ เมื่อใช้ Visual Studio แต่เพียงอัปเดต Selenium.WebDriver และ Selenium.WebDriver.ChromeDriver แพคเกจนักเก็ตรุ่นล่าสุดให้ใช้งานได้

ฉันใช้ Chrome v78 และการอัปเกรด Chromedriver เป็น v78 ยังคงมีข้อผิดพลาดที่เข้ากันไม่ได้ คำตอบของ CAD ทำให้ฉันได้ทางออก


0

ปัญหาเดียวกันนี้เกิดขึ้นกับฉันในวันนี้

ทางออกของฉัน:

ดาวน์โหลด Chromedriver ที่เสถียรล่าสุด: https://sites.google.com/a/chromium.org/chromedriver/

อัปเดตไดรเวอร์ Chrome ในโฟลเดอร์ Selenium ของคุณ นี่เป็นเรื่องยากเพราะอยู่ในโฟลเดอร์ที่ซ่อนอยู่ในพีซีของคุณชื่อ AppData นี่คือวิธีที่ฉันทำในคอมพิวเตอร์ของฉัน (Windows 7):

C:> ผู้ใช้> ผู้ใช้ของคุณ> \ AppData (คุณต้องเขียนสิ่งนี้ในกล่องพา ธ โฟลเดอร์เนื่องจากเป็นโฟลเดอร์ที่ซ่อนอยู่)> Local (นี่คือชื่อโฟลเดอร์ในภาษาโปรตุเกสบางทีมันอาจจะมีชื่ออื่นให้คุณ) > ซีลีเนียมขั้นพื้นฐาน

คุณจะพบแอปพลิเคชั่น Chromedriver เพียงแค่เปลี่ยนชื่อ (ในกรณีที่ใช้งานไม่ได้คุณต้องการมีรุ่นเก่ากว่า) และวางรุ่นใหม่ล่าสุด


0

ฉันมีปัญหาเดียวกันมากเมื่อเร็ว ๆ นี้ นี่เป็นข้อผิดพลาดของฉัน:

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

การแก้ไขนี้ใช้งานได้สำหรับฉัน:

  • ตรวจสอบให้แน่ใจว่าไม่มีกระบวนการที่ทำงานอยู่ chromedriver.exe (ถ้าจำเป็นต้องฆ่าพวกเขาทั้งหมดเช่นผ่านตัวจัดการงาน)
  • ไปที่โฟลเดอร์ bin และลบไฟล์ chromedriver.exe จากที่นั่น (ในกรณีของฉันมันเป็น: [project_folder]\bin\Debug\netcoreapp2.1)

0

ตรวจสอบให้แน่ใจว่าคุณมี webdriver-manager เวอร์ชันล่าสุด คุณสามารถติดตั้งได้เหมือนกันโดยใช้npm i webdriver-manager@latest --save

จากนั้นเรียกใช้สิ่งต่อไปนี้

command.webdriver-manager update

0

ฉันมีปัญหาเดียวกันและแก้ไขได้โดยเพียงแค่ดาวน์โหลดchromedriverไฟล์สำหรับ Chrome รุ่นก่อนหน้า ฉันได้พบว่า Chrome รุ่น 79 สามารถใช้งานได้กับซีลีเนียมรุ่นปัจจุบัน

webdriverจากนั้นผมก็บันทึกไว้ในเส้นทางที่กำหนดและเชื่อมโยงว่าเส้นทางของฉัน

ขั้นตอนที่แน่นอนมีการระบุไว้ในลิงค์นี้: http://chromedriver.chromium.org/downloads


0

ฉันมีปัญหาที่คล้ายกันเพียงแค่อัพเดต webdriver manager บน mac ใช้สิ่งนี้ในเทอร์มินัลเพื่ออัปเดต webdriver manager-

 sudo webdriver-manager update

0
  1. ดาวน์โหลดเวอร์ชันรีลีสปัจจุบันของ Chrome และติดตั้ง (เพื่อตรวจสอบเวอร์ชั่น Google chrome ของคุณไปที่ความช่วยเหลือ> เกี่ยวกับ Google chrome และลองติดตั้งเวอร์ชันนั้นบนเครื่องท้องถิ่นของคุณ

สำหรับรุ่น Google chrome ดาวน์โหลดให้เยี่ยมชมไซต์ = chromedriver.chromium.org


0

ฉันตรวจสอบเวอร์ชันของเบราว์เซอร์ google chrome ที่ติดตั้งบนพีซีของฉันแล้วดาวน์โหลดที่ChromeDriverเหมาะสมกับเวอร์ชันเบราว์เซอร์ของฉัน คุณสามารถดาวน์โหลดได้จากhttps://chromedriver.chromium.org/

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.