lỗi không xác định: kết quả hàm cuộc gọi thiếu 'giá trị' cho Khóa gửi Selenium ngay cả sau khi nâng cấp chromedriver


110

Tôi gặp lỗi bên dưới khi gửi khóa.

Thông báo kết quả:

System.InvalidOperationException : unknown error: call function result missing 'value'
  (Session info: chrome=65.0.3325.146)
  (Driver info: chromedriver=2.33.506120 (e3e53437346286c0bc2d2dc9aa4915ba81d9023f),platform=Windows NT 10.0.14393 x86_64)

Tôi đã cập nhật trình điều khiển chrome lên 2,36 nhưng vẫn tìm kiếm mã của tôi cho 2,33?

Bất kỳ ý tưởng ?


Vấn đề tương tự ở đây kể từ ngày hôm qua. Trong trường hợp của tôi, tôi nghĩ rằng vấn đề là sự kết hợp của không đầu chrome v65 + selen lái xe v2.34 (changelog nói nó tương thích với chrome v61-63)
Jorge Arévalo

Câu trả lời:


115

Tôi đã gặp lỗi tương tự, vui lòng tải xuống phiên bản ChromeDriver mới nhất và / hoặc cập nhật phiên bản trình duyệt chrome và nó sẽ hoạt động tốt :)

https://chromedriver.storage.googleapis.com/index.html?path=2.36/


1
Tôi đã tải xuống nó và được gọi là Nuget và xóa tất cả các tham chiếu đến 2.33 nhưng nó vẫn kết nối với 2.33 cũ?
Zaki Ahmed

2
Tôi tải chromedriver mới nhất 2,36 và nó vẫn không làm việc với Chrome 65.0.3325.146 Version (Phiên bản Chính thức) (64-bit) Ít nhất trên Mac OS :(
neliCZka

2
Ồ, xin lỗi, tôi thực sự đã định cấu hình đường dẫn của mình sai, và sau khi tôi liên kết nó với trình xử lý màu mới, tập lệnh của tôi thực sự hoạt động ngay bây giờ. Nhân tiện, tôi đang sử dụng một máy tính Windows.
Cliff Chew

6
Nếu bạn đang sử dụng đá quý github.com/flavorjones/chromedriver-helper , thì hãy chạy trong bảng điều khiểnchromedriver-update 2.36
Bachet

4
Nếu bạn sử dụng Homebrew, bạn có thể thực hiệnbrew upgrade chromedriver
Diego Carrion

23


Sau khi cập nhật trình duyệt Google Chrome lên Phiên bản 65.0.3325.146 (Bản dựng chính thức) (64-bit) , tôi cũng gặp phải lỗi tương tự khi gửi các giá trị đến trường nhập, đây là thông báo lỗi ...

selenium.common.exceptions.WebDriverException: Message: unknown error: call function result missing 'value'

sử dụng Chromedriver 2.32 và Google Chrome 65.0

Khi tôi thực hiện một số nghiên cứu về điều tương tự, tôi đã tìm thấy một cam kết gần đây trên các thay đổi của Google chrome v65 giúp tôi giải quyết vấn đề.

Giải pháp:

  • Cập nhật Google Chrome lên phiên bản ổn định mới nhất (trong trường hợp của tôi là v65 vào ngày 9 tháng 3 năm 2018)
  • Tải xuống và định cấu hình chromedriver mới nhất (v2.36). Để định cấu hình chromedriver (trên Ubuntu), hãy làm theo các bước sau ...

    1. Giải nén tệp zip đã tải xuống.
    2. Sao chép tệp chromedriver đã giải nén vào / usr / local / bin hoặc đến vị trí mà bạn thường lưu trữ các tệp nhị phân thực thi.
    3. Thêm cùng một đường dẫn (nơi bạn đặt tệp chromedriver) vào biến môi trường PATH dưới dạng

xuất PATH = $ PATH: / usr / local / bin

  1. Để kiểm tra cài đặt, hãy khởi động lại thiết bị đầu cuối và nhập lệnh này

chromedriver --version

nó sẽ hiển thị phiên bản của chromedriver mà bạn vừa cài đặt.

Lưu ý: Nếu trình điều khiển chromedriver đã được cài đặt và định cấu hình thì chỉ cần thay thế tệp trình điều khiển hiện có và Nếu bạn không biết nơi các tệp nhị phân của Chromedriver đã được lưu trữ, hãy thử tìm tệp bằng lệnh sau

 sudo find -H / -type f -iname chromedriver

13

Đó là do cập nhật phiên bản trình duyệt chrome từ 64.xx lên 65.xx

Bây giờ bạn có 2 tùy chọn để chạy thử nghiệm thành công.

  1. Hạ cấp trình duyệt chrome của bạn xuống phiên bản trước và với trình duyệt chrome cũ mà bạn có bây giờ.

  2. Nâng cấp Chromedriver của bạn lên phiên bản 2.36 bằng trình duyệt Chrome được cập nhật.

    truy cập https://chromedriver.storage.googleapis.com/index.html?path=2.36 và tải xuống chromedriver mới.

Lựa chọn 2 là tốt hơn.


Tôi đang ở trong môi trường sau: Ubuntu 16.04, GoogleChrome 65.0.3325.146, ChromeDriver 2.36.540471. Và tôi vẫn nhận được lỗi chính xác ở trên. Tôi cần thay đổi điều gì? Tuy nhiên, lỗi cho biết tôi đang sử dụng chromedriver phiên bản 2.33.506092 ...
Armin

Bạn cần đề cập đến đường dẫn chính xác của chromedriver mới nhất mà bạn đã cập nhật không phải là đường dẫn cũ. hoặc Thay thế cromedriver cũ bằng cái mới. Chỉ cần kiểm tra nó.
Deepak N

Nếu ai đó gặp phải lỗi này trong Visual studio, hãy nâng cấp lên gói Nuget của trình điều khiển web chrome lên 2.37 (tại thời điểm viết bài) sẽ giải quyết được lỗi này.
Gunarathinam

12

Thay thế ChromeDriver.exe của bạn bằng phiên bản mới nhất .. Bạn có thể tải xuống phiên bản tương tự từ Google một cách dễ dàng.

Ngoài ra, tốt hơn hết là bạn nên tự động thực hiện nó bằng cách sử dụng trình quản lý webDriver như được giải thích bên dưới - 1. Thêm phụ thuộc Mvn vào POM dự án của bạn:

<dependency>
    <groupId>io.github.bonigarcia</groupId>
    <artifactId>webdrivermanager</artifactId>
    <version>${webdrivermanager.version}</version>
    <scope>test</scope>
</dependency>
  1. Bây giờ trong lớp khởi tạo Trình duyệt của bạn thay vì sử dụng cách truyền thống để tạo trình điều khiển, tức là bằng cách sử dụng System.setProperty (Xem belwo) ...

    System.setProperty ("webdriver.chrome.driver", "src / test / resources / drivers / chromedriver.exe");

Sử dụng cách tiếp cận dưới đây:

WebDriverManager.chromedriver (). Setup ();
webDriver = mới ChromeDriver (chromeOptions);

Và đó là tất cả, bạn đã hoàn thành!

Sử dụng các liên kết bên dưới để bạn tham khảo- Trình quản lý nhị phân trình duyệt là gì cách sử dụng nó cho Selenium

hoặc chkout git project for same- https://github.com/bonigarcia/webdrivermanager#webdrivermanager-as-java-dependency


3
Điều này phù hợp với tôi - bạn có thể tìm thấy bản tải xuống cho 2.37 tại đây: chromedriver.storage.googleapis.com/index.html?path=2.37
Reily Bourne

Vâng và bây giờ cái mới nhất là- ChromeDriver 2.38 - chromedriver.chromium.org/downloads
Satyendra Sharma

10

Cần cập nhật chromedriver: Trong bảng điều khiển, hãy chạy: chromedriver-update 2.36


9

Lỗi nói lên tất cả:

System.InvalidOperationException : unknown error: call function result missing 'value'
  (Session info: chrome=65.0.3325.146)
  (Driver info: chromedriver=2.33.506120

Lỗi khiếu nại rõ ràng về InvalidOperationException

Vấn đề chính của bạn là khả năng tương thích phiên bản giữa các tệp nhị phân bạn đang sử dụng như sau:

  • Bạn đang sử dụng chromedriver = 2.33
  • Ghi chú phát hành của chromedriver = 2.33 đề cập rõ ràng những điều sau:

Hỗ trợ Chrome v60-62

  • Bạn đang sử dụng chrome = 65.0
  • Ghi chú phát hành của ChromeDriver v2.37 đề cập rõ ràng những điều sau:

Hỗ trợ Chrome v64-66

  • Chúng tôi không biết phiên bản Selenium Client của bạn .

Vì vậy, có một không phù hợp rõ ràng giữa ChromeDriver phiên bản ( thưởng v2.33 ) và trình duyệt Chrome phiên bản ( v65.0 )

Giải pháp

  • Nâng cấp Selenium lên cấp độ hiện tại Phiên bản 3.11.0 .
  • Nâng cấp ChromeDriver lên cấp ChromeDriver v2.37 .
  • Giữ phiên bản Chrome ở giữa các cấp Chrome v64.x-66.x . ( theo ghi chú phát hành ChromeDriver v2.37 )
  • Làm sạch không gian làm việc dự án của bạn thông qua IDE của bạn và xây dựng lại dự án của bạn chỉ với các phụ thuộc bắt buộc.
  • Sử dụng công cụ CCleaner để xóa tất cả các công việc của hệ điều hành trước và sau khi thực thi Bộ thử nghiệm của bạn .
  • Nếu phiên bản Trình duyệt web / Máy khách web cơ sở của bạn quá cũ, hãy gỡ cài đặt nó thông qua Trình gỡ cài đặt Revo và cài đặt GA và phiên bản Trình duyệt web / Máy khách web đã phát hành gần đây .
  • Thực thi của bạn @Test.

5

Nếu bạn đang sử dụng Mac:

brew upgrade selenium-server-standalone
brew upgrade chromedriver

nếu hai phần trên không được cài đặt:

brew install selenium-server-standalone
brew install chromedriver

3

Tôi đang chạy Thước đo và gặp phải vấn đề tương tự.

Giải pháp trong trường hợp của tôi là khá đơn giản.

$ npm update protractor -g

$ webdriver-manager update


Nếu bạn đang sử dụng gulp-protractorplugin, hãy nhớ cập nhật plugin.
Ilya Vinogradov

2

Nếu bạn đang sử dụng Google Chrome ổn định mới nhất (ví dụ: 67), tôi khuyên bạn nên:

brew uninstall chromedriver
brew tap homebrew/cask
brew cask install chromedriver

Bộ lệnh này sẽ gỡ cài đặt trình điều khiển sắc độ hiện tại của bạn, kiểm tra các bản cập nhật và cài đặt bản mới nhất được tìm thấy (ví dụ: 2.40).


Rất vui vì nó đã giúp!
S. Esteves

1
Use xpaths instead of class names to locate elements

Sau khi cập nhật chrome và trình điều khiển của nó, nó không giúp được gì cho tôi !! Tôi không biết nó có ý nghĩa như thế nào nhưng nó đã hiệu quả với tôi khi tôi thay thế tên lớp bằng xpath. Đây là xpath, tôi đã sử dụng để tự động gửi tin nhắn whatsapp bằng python.

driver.find_element_by_xpath('//*[@id="main"]/footer/div[1]/div[2]/div')

trước đây tôi đã sử dụng

driver.find_element_by_class_name('Some class Name Here')

0

Trong trường hợp của tôi, nhóm của tôi, tôi đang chấm selen vào một tệp chromedriver cụ thể mà chúng tôi đã có. Để có được Selenium sử dụng chromedriver được cập nhật, trước tiên tôi đã cài đặt nó với brew và sau đó tạo một liên kết tượng trưng để trỏ nơi Selenium tìm kiếm nó:

brew install chromedriver
ln -s /usr/local/Cellar/chromedriver/2.36/bin/chromedriver /path/where/selenium/expects/chromedriver

0

Có thể điều này có thể hữu ích cho một người nào đó mà tôi cần thêm một bước:

Tôi đang sử dụng MacOS X. Tôi đã làm

brew upgrade chromedriver
bundle exec chromedriver-upgrade

Tôi đã cài đặt chromedriver-helper gem nhưng nó được lưu trữ và yêu cầu tiền tố "gói thực thi" hoặc trình bao không thể tìm thấy lệnh.

Ở trên đã khắc phục sự cố của tôi.


0

Như đã được đề cập bởi những người khác, máy cạo râu mới nhất đã thực hiện thủ thuật cho tôi. Trong trường hợp bạn đã tải xuống trình điều khiển theo cách thủ công và muốn yêu cầu appium sử dụng trình điều khiển mới, bạn có thể làm như vậy bằng lệnh này:

appium --chromedriver-executable /path/to/driver/chromedriver ....


0

Tôi đang chạy Protractor (webdriver-manager) với Selenium trong môi trường Windows và tôi phải làm như sau:

  1. webdriver-manager update --versions.chrome="2.36" (Thao tác này đã tải xuống Chromedriver mới đến đúng đường dẫn nhưng không kích hoạt nó trong thước đo góc.)
  2. Chỉnh sửa %userprofile%\AppData\Roaming\npm\node_modules\protractor\config.jsonvà thay đổi chromedrivergiá trị từ 2.32thành 2.36.
  3. Xóa cũ của tôi chromedriver_2.32.exekhỏi %userprofile%\AppData\Roaming\npm\node_modules\protractor\seleniumđể có biện pháp tốt (không chắc chắn nếu điều đó được yêu cầu.)

Hoặc là:

Khi cần một bản cập nhật Chromedriver khác, tôi không thể cập nhật theo cách này được nữa. Cài đặt cấu hình vẫn yêu cầu đường dẫn và tên tệp cũ và tôi không thể tìm ra nơi để thay đổi cài đặt đó. Vì vậy, tôi vừa đổi tên chromedriver mới nhất thành "chromedriver.exe" và mắc kẹt nó trong C: \ Windows \ system32 (luôn được tham chiếu bởi PATH). Thô, nhưng hiệu quả.



0

Tôi không biết bạn có còn ở trên này không nhưng tôi đã gặp lỗi tương tự. Tôi đã có phiên bản chromedriver mới nhất trong PATH của mình và Google Chrome đã được cập nhật. Tôi chạy Python 3.6 trên windows 10 x64 bit. Điều tôi đang cố gắng chọn một giá trị từ menu thả xuống trên một trang web. Điều kỳ lạ là, nó sẽ chọn giá trị thả xuống một cách chính xác và trang sẽ được cập nhật đẹp mắt, nhưng tôi vẫn nhận được lỗi ngu ngốc đó và tập lệnh của tôi sẽ bị đóng băng. Vì vậy, tôi chỉ tạo một trình xử lý lỗi ngoại lệ cho nó, vì giống như tôi đã nói, nó đã chọn giá trị thả xuống một cách chính xác, vì vậy tôi chỉ muốn bỏ qua thông báo lỗi ngu ngốc đó:

# select by value
try:
    select.select_by_value('100')
except:
    pass

hy vọng ai đó thấy điều này hữu ích.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.