bilinmeyen hata: krom sürücü yükseltmesinden sonra bile Selenium Gönderme Anahtarları için 'değer' eksik çağrı işlevi sonucu


110

Anahtarları gönderirken aşağıdaki hatayı alıyorum.

Sonuç Mesajı:

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)

Chrome sürücüsünü 2.36'ya güncelledim, ancak yine de 2.33 için kod aramam?

Herhangi bir fikir ?


Dünden beri burada aynı sorun. Benim durumumda, sorunun başsız krom v65 + selenyum sürücüsü v2.34'ün bir kombinasyonu olduğunu düşünüyorum (değişiklik günlüğü, krom v61-63 ile uyumlu olduğunu söylüyor)
Jorge Arévalo

Yanıtlar:


115

Aynı hatayı aldım, lütfen son ChromeDriver sürümünü indirin ve / veya Chrome tarayıcı sürümünü güncelleyin, sorunsuz çalışacaktır :)

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


1
Onu indirdim ve Nuget olarak adlandırdım ve 2.33'e yapılan tüm referansları kaldırdım ama yine de eski 2.33'e bağlanıyor?
Zaki Ahmed

2
En yeni chromedriver 2.36'yı indirdim ve hala Chrome Sürüm 65.0.3325.146 (Resmi Yapı) (64-bit) ile çalışmıyor En azından Mac OS'de :(
neliCZka

2
Oh, özür diler, aslında yolumu yanlış yapılandırdım ve onu yeni krom sürücüsüne bağladıktan sonra, senaryom şu anda çalışıyor. Bu arada bir Windows makinesi kullanıyorum.
Cliff Chew

6
Github.com/flavorjones/chromedriver-helper gem kullanıyorsanız , konsolda çalıştırınchromedriver-update 2.36
Bachet

4
Homebrew kullanıyorsanız, brew upgrade chromedriver
Diego Carrion

23


Google Chrome tarayıcısını 65.0.3325.146 Sürümüne (Resmi Yapı) (64 bit) güncelledikten sonra , giriş alanına değer gönderirken de aynı hatayla karşılaşıyorum, işte hata mesajı ...

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

Chromedriver 2.32 ve Google Chrome 65.0 kullanarak

Aynı konuda biraz araştırma yaptığım için, sorunu çözmeme yardımcı olan Google chrome v65 değişiklik günlüklerinde yeni bir taahhüt buldum .

Çözüm:

  • Google Chrome'u en son kararlı sürüme güncelleyin (benim durumumda v65, 9 / mar / 2018)
  • En son Chromedriver'ı (v2.36) indirin ve yapılandırın. Chromedriver'ı (Ubuntu'da) yapılandırmak için şu adımları izleyin ...

    1. İndirilen zip dosyasını çıkarın.
    2. Çıkarılan Chromedriver dosyasını / usr / local / bin dizinine veya genellikle çalıştırılabilir ikili dosyaları depoladığınız konuma kopyalayın .
    3. PATH ortam değişkenine aynı yolu (Chromedriver dosyasını yerleştirdiğiniz yer) ekleyin:

dışa aktarma PATH = $ PATH: / usr / local / bin

  1. Kurulumu test etmek için terminali yeniden başlatın ve bu komutu yazın

chromedriver --version

yeni yüklediğiniz Chromedriver sürümünü gösterir.

Not: Chromedriver önceden yüklenmiş ve yapılandırılmışsa, mevcut sürücü dosyasını değiştirin ve Chromedriver ikili dosyalarının nerede depolandığını bilmiyorsanız, aşağıdaki komutu kullanarak dosyayı bulmaya çalışın

 sudo find -H / -type f -iname chromedriver

13

Bunun nedeni, Chrome tarayıcı sürümünün 64.xx'den 65.xx'e güncellenmesidir

Şimdi testlerinizi başarıyla çalıştırmak için 2 seçeneğiniz var.

  1. Chrome tarayıcınızı önceki sürüme ve şimdi sahip olduğunuz eski Chromedriver ile düşürün.

  2. Chromedriver'ınızı güncellenmiş Chrome tarayıcısıyla 2.36 sürümüne yükseltin.

    https://chromedriver.storage.googleapis.com/index.html?path=2.36 adresini ziyaret edin ve yeni chromedriver'ı indirin.

2. seçenek daha iyidir.


Şu ortamdayım: Ubuntu 16.04, GoogleChrome 65.0.3325.146, ChromeDriver 2.36.540471. Ve yine de yukarıdaki hatayı tam olarak alıyorum. Neyi değiştirmem gerekiyor? Ancak hata, Chromedriver 2.33.506092 sürümünü kullandığımı söylüyor ...
Armin

Eski değil, güncellediğiniz en son krom sürücüsünün tam yolunu belirtmeniz gerekir. veya Eski krom sürücüyü yenisiyle değiştirin. Sadece kontrol et.
Deepak N

Herhangi biri Visual Studio'da bu hatayla karşılaşırsa, Chrome web sürücüsü Nuget paketini 2.37'ye (yazma sırasında) yükseltin bu hatayı çözecektir.
Gunarathinam

12

ChromeDriver.exe dosyanızı en son sürümle değiştirin .. Aynısı Google'dan kolayca indirilebilir.

Ayrıca, aşağıda açıklandığı gibi webDriver yöneticisini kullanarak otomatik olarak yapılması daha iyidir - 1. Proje POM'unuza Mvn bağımlılığı ekleyin:

<dependency>
    <groupId>io.github.bonigarcia</groupId>
    <artifactId>webdrivermanager</artifactId>
    <version>${webdrivermanager.version}</version>
    <scope>test</scope>
</dependency>
  1. Şimdi, sürücü oluşturmak için geleneksel bir yol kullanmak yerine, yani System.setProperty kullanarak Tarayıcı somutlaştırma sınıfınızda (bkz. Belwo) ...

    System.setProperty ( "webdriver.chrome.driver", "src / test / kaynaklar / sürücüleri / chromedriver.exe");

Aşağıdaki yaklaşımı kullanın:

WebDriverManager.chromedriver () kurulumu (.);
webDriver = new ChromeDriver (chromeOptions);

Ve hepsi bu, bitirdiniz!

Referansınız için aşağıdaki bağlantıları kullanın - Tarayıcı İkili Yöneticisi nedir Selenium için nasıl kullanılır?

veya aynı için chkout git projesi- https://github.com/bonigarcia/webdrivermanager#webdrivermanager-as-java-dependency


3
Bu benim için çalıştı - 2.37 için indirmeler burada bulunabilir: chromedriver.storage.googleapis.com/index.html?path=2.37
Bourne

Evet ve şimdi en sonuncusu - ChromeDriver 2.38 - chromedriver.chromium.org/downloads
Satyendra Sharma

10

Chromedriver'ın güncellenmesi gerekiyor: Konsolda şunu çalıştırın: chromedriver-update 2.36


9

Hata her şeyi söylüyor:

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

Hata, InvalidOperationException hakkında açıkça şikayet ediyor

Ana sorununuz, kullandığınız ikili dosyalar arasındaki sürüm uyumluluğudur :

  • Chromedriver = 2.33 kullanıyorsunuz
  • Chromedriver = 2.33 Sürüm Notları aşağıdakilerden açıkça bahsediyor:

Chrome v60-62'yi destekler

  • Chrome = 65.0 kullanıyorsunuz
  • ChromeDriver v2.37 Sürüm Notları aşağıdakilerden açıkça bahsetmektedir:

Chrome v64-66'yı destekler

  • Kişisel Selenyum İstemci sürümü bize bilinmemektedir.

Dolayısıyla, ChromeDriver sürümü ( v2.33 ) ile Chrome Tarayıcı sürümü ( v65.0 ) arasında açık bir uyumsuzluk var

Çözüm

  • Yükseltme Selenyum akım seviyelerine Sürüm 3.11.0 .
  • Yükseltme ChromeDriver için ChromeDriver v2.37 düzeyde.
  • Chrome sürümünü, Chrome v64.x-66.x düzeyleri arasında tutun . ( ChromeDriver v2.37 sürüm notlarına göre )
  • Temizlik sizin Proje Workspace sizin aracılığıyla IDE ve yeniden sadece gerekli bağımlılıkları ile projenizi.
  • Test Suite'inizin çalıştırılmasından önce ve sonra tüm işletim sistemi işlerini silmek için CCleaner aracını kullanın .
  • Temel Web Tarayıcısı / Web İstemcisi sürümünüz çok eskiyse, bunu Revo Kaldırıcı aracılığıyla kaldırın ve Web Tarayıcısı / Web İstemcisinin yeni bir GA ve yayınlanmış sürümünü yükleyin .
  • Uygula @Test.

5

Mac kullanıyorsanız:

brew upgrade selenium-server-standalone
brew upgrade chromedriver

yukarıdaki ikisi kurulu değilse:

brew install selenium-server-standalone
brew install chromedriver

3

Açıölçer çalıştırıyorum ve aynı sorunla karşılaştım.

Benim durumumdaki çözüm oldukça basitti.

$ npm update protractor -g

$ webdriver-manager update


gulp-protractorEklenti kullanıyorsanız , onu da güncellediğinizden emin olun.
Ilya Vinogradov

2

En son kararlı Google Chrome kullanıyorsanız (ör. 67) şunları yapmanızı öneririm:

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

Bu komut seti, mevcut Chromedriver'ınızı kaldıracak, güncellemeleri kontrol edecek ve bulunan en son sürümü yükleyecektir (örn. 2.40).


Yardımcı olduğuna sevindim!
S. Esteves

1
Use xpaths instead of class names to locate elements

Chrome'u ve sürücülerini güncelledikten sonra bana hiç yardımcı olmadı !! Bunun ne kadar mantıklı olduğunu bilmiyorum ama sınıf adını xpath ile değiştirdiğimde işime yaradı. Bu xpath, python kullanarak whatsapp mesajı göndermeyi otomatikleştirmek için kullandığım xpath.

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

önceden kullanıyordum

driver.find_element_by_class_name('Some class Name Here')

0

Benim durumumda ekip, elimizdeki belirli bir krom sürücü dosyasına selenyum puan veriyor. Selenium'un güncellenmiş krom sürücüsünü kullanmasını sağlamak için, önce onu brew ile kurdum ve ardından Selenium'un aradığı noktaya sembolik bir bağlantı oluşturdum:

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

0

Muhtemelen bu, ek bir adıma ihtiyacım olan birine yardımcı olabilir:

MacOS X kullanıyorum. Yaptım

brew upgrade chromedriver
bundle exec chromedriver-upgrade

Chromedriver-helper gem'i yükledim, ancak saklandı ve "bundle exec" ön ekini gerektiriyor veya kabuk komutu bulamıyor.

Yukarıdakiler sorunumu çözdü.


0

Başkalarının da bahsettiği gibi, en son krom sürücüsü benim için hile yaptı. Sürücüyü manuel olarak indirdiyseniz ve appium'a yeni krom sürücüyü kullanmasını söylemek istiyorsanız, bunu şu komutla yapabilirsiniz:

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


0

Selenium ile bir Windows ortamında Protractor (webdriver-manager) çalıştırıyorum ve şunları yapmam gerekiyordu:

  1. webdriver-manager update --versions.chrome="2.36" (Bu, yeni Chromedriver'ı doğru yola indirdi ancak açıölçerde etkinleştirmedi.)
  2. Olan değeri olarak düzenleyin %userprofile%\AppData\Roaming\npm\node_modules\protractor\config.jsonve değiştirin .chromedriver2.322.36
  3. Benim eski Sil chromedriver_2.32.exedan %userprofile%\AppData\Roaming\npm\node_modules\protractor\seleniumiyi ölçmek için (gerekli olduğu değil emin olur.)

Veya:

Başka bir Chromedriver güncellemesine ihtiyaç duyulduğunda artık bu şekilde güncelleme yapamıyordum. Bir yapılandırma ayarı hala eski yolu ve dosya adını bekliyordu ve bu ayarı nerede değiştireceğimi bulamadım. Bu yüzden en son Chromedriver'ı "chromedriver.exe" olarak yeniden adlandırdım ve C: \ Windows \ system32 (her zaman PATH tarafından başvurulan) içine yapıştırdım. Kaba ama etkili.



0

Hala bu konuda mısınız bilmiyorum ama ben de benzer bir hata alıyordum. PATH'imde en son chromedriver sürümüne sahiptim ve Google Chrome güncellendi. Python 3.6'yı Windows 10 x64 bit üzerinde çalıştırıyorum. Bir web sayfasındaki açılır menüden bir değer seçmeye çalışırken elde ettiğim şey. Garip olan şey, açılır menü değerini doğru seçmesi ve sayfanın güzel bir şekilde güncellenmesiydi, ancak yine de bu aptal hatayı alırdım ve betiğim donardı. Bu yüzden bunun için bir istisna hata işleyicisi yaptım, çünkü dediğim gibi açılır değeri doğru seçti, bu yüzden sadece o aptal hata mesajını atlamak istedim:

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

umarım birisi bunu yararlı bulur.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.