अज्ञात त्रुटि: क्रोमेनियर अपग्रेड के बाद भी सेलेनियम सेंड कीज के लिए कॉल फंक्शन मिसिंग 'वैल्यू' गायब है


110

मुझे चाबियाँ भेजते समय नीचे त्रुटि मिल रही है।

परिणाम संदेश:

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)

मैंने क्रोम ड्राइवर को 2.36 में अपडेट किया है लेकिन फिर भी 2.33 के लिए मेरा कोड खोज है?

कोई उपाय ?


कल से यहाँ भी वही समस्या है। मेरे मामले में, मुझे लगता है कि समस्या हेडलेस क्रोम v65 + सेलेनियम ड्राइवर v2.34 का एक संयोजन है (चैंज का कहना है कि यह क्रोम v61-63 के साथ संगत है)
जॉर्ज

जवाबों:


115

मैंने वही त्रुटि प्राप्त की है, कृपया अंतिम ChromeDriver संस्करण डाउनलोड करें और / या क्रोम ब्राउज़र संस्करण को अपडेट करें और यह ठीक काम करेगा :)

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


1
मैंने इसे डाउनलोड किया है और नुगेट के रूप में संदर्भित किया है और 2.33 के सभी संदर्भ हटा दिए हैं लेकिन फिर भी यह पुराने 2.33 से जोड़ता है?
जकी अहमद

2
मैंने नवीनतम क्रोमेड्रिवर 2.36 डाउनलोड किया और यह अभी भी क्रोम संस्करण 65.0.3325.146 (आधिकारिक बिल्ड) (64-बिट) के साथ कम से कम मैक ओएस पर काम नहीं करता है :(
neliCZka

2
ओह, माफी माँगता हूँ, मैंने वास्तव में अपने पथ को गलत तरीके से कॉन्फ़िगर किया है, और जब मैंने इसे नए क्रोमेड्रिवर से जोड़ा, तो मेरी स्क्रिप्ट वास्तव में अब काम करती है। मैं वैसे तो एक विंडोज़ मशीन का उपयोग कर रहा हूँ।
क्लिफ च्यू

6
यदि आप github.com/flavorjones/chromedriver-helper रत्न का उपयोग कर रहे हैं , तो कंसोल में चलाएंchromedriver-update 2.36
Bachet

4
आप Homebrew का उपयोग करते हैं, तो आप निष्पादित कर सकते हैंbrew upgrade chromedriver
डिएगो सड़ा हुआ

23


संस्करण 65.0.3325.146 (आधिकारिक बिल्ड) (64-बिट) के लिए Google क्रोम ब्राउज़र को अपडेट करने के बाद , मैं भी उसी त्रुटि के साथ सामना कर रहा हूं, जो इनपुट क्षेत्र में मान भेज रहा है, यहां त्रुटि संदेश है ...

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

Chromedriver 2.32 और Google Chrome 65.0 का उपयोग करना

जैसा कि मैंने उसी पर कुछ शोध किया था, मुझे Google chrome v65 changelogs पर हाल ही में एक कमिट मिला, जो मुझे इस समस्या को हल करने में मदद करता है।

उपाय:

  • Google Chrome को नवीनतम स्थिर संस्करण में अपडेट करें (मेरे मामले में यह 9 / मार्च / 2018 को v65 है)
  • नवीनतम क्रोमेड्राइवर (v2.36) डाउनलोड और कॉन्फ़िगर करें। Chromedriver को कॉन्फ़िगर करने के लिए (Ubuntu पर) इन चरणों का पालन करें ...

    1. डाउनलोड की गई ज़िप फ़ाइल को निकालें।
    2. निकाली गई क्रोमेड्रिवर फ़ाइल को / usr / लोकल / बिन या उस स्थान पर कॉपी करें जहाँ आप आमतौर पर निष्पादन योग्य बायनेरिज़ को संग्रहीत करते हैं।
    3. पर्यावरण पथ PATH के समान पथ (जहां आप क्रोमेड्राइवर फ़ाइल को रखते हैं) को इसमें जोड़ें

निर्यात पथ = $ पथ: / usr / स्थानीय / बिन

  1. स्थापना के परीक्षण के लिए, टर्मिनल को पुनरारंभ करें और इस कमांड को टाइप करें

क्रोमेड्रिवर --version

यह क्रोमेड्रिवर का संस्करण दिखाएगा जिसे आपने अभी स्थापित किया है।

नोट: यदि क्रोमेड्राइवर पहले से स्थापित और कॉन्फ़िगर है तो बस मौजूदा ड्राइवर फ़ाइल को बदलें और यदि आप नहीं जानते कि क्रोमेड्राइवर बायनेरिज़ पहले से कहाँ संग्रहीत हैं तो निम्न कमांड का उपयोग करके फ़ाइल को खोजने का प्रयास करें

 sudo find -H / -type f -iname chromedriver

13

इसकी वजह है कि 64.xx से 65.xx तक क्रोम ब्राउजर वर्जन का अपडेट होना

अब आपके पास अपने परीक्षण को सफलतापूर्वक चलाने के लिए 2 विकल्प हैं।

  1. अपने क्रोम ब्राउजर को पिछले वर्जन पर और पुराने क्रोमड्रीवर के साथ डाउनग्रेड करें, जो अब आपके पास है।

  2. अपडेट किए गए Chrome ब्राउज़र के साथ अपने Chromedriver को 2.36 संस्करण में अपग्रेड करें।

    https://chromedriver.storage.googleapis.com/index.html?path=2.36 पर जाएं और नया क्रोमेड्रिवर डाउनलोड करें।

विकल्प 2 बेहतर है।


मैं निम्नलिखित वातावरण में हूं: Ubuntu 16.04, GoogleChrome 65.0.3325.146, क्रोमड्राइव 2.36.53181। और मुझे अभी भी सटीक त्रुटि मिलती है। मुझे क्या बदलने की आवश्यकता है? हालांकि, त्रुटि कहती है कि मैं क्रोमेड्रिवर संस्करण 2.33.506092 का उपयोग कर रहा हूं ...
अर्मिन

आपको नवीनतम क्रोमेड्रिवर के सटीक पथ का उल्लेख करने की आवश्यकता है जिसे आपने एक पुराना नहीं अपडेट किया है। या पुराने क्रोमेड्रिवर को नए के साथ बदलें। जरा इसकी जाँच करें।
दीपक एन

यदि कोई भी दृश्य स्टूडियो में इस त्रुटि का सामना करता है, तो क्रोम वेब ड्राइवर नगेट पैकेज को 2.37 पर अपग्रेड करें (लिखने के समय) इस त्रुटि को हल करेगा।
गुनारथिनम

12

अपने ChromeDriver.exe को नवीनतम संस्करण के साथ बदलें .. एक ही Google से आसानी से डाउनलोड किया जा सकता है।

नीचे दिए गए अनुसार वेबड्राइवर प्रबंधक का उपयोग करके इसे स्वचालित रूप से प्राप्त करना बेहतर है - 1. अपने प्रोजेक्ट POM में Mvan निर्भरता जोड़ें:

<dependency>
    <groupId>io.github.bonigarcia</groupId>
    <artifactId>webdrivermanager</artifactId>
    <version>${webdrivermanager.version}</version>
    <scope>test</scope>
</dependency>
  1. अब आपके ब्राउज़र में इंस्ट्रूमेंटेशन क्लास में पारंपरिक तरीके से ड्राइवर बनाने के बजाय System.setProperty (belwo देखें) का उपयोग करके ...

    System.setProperty ( "webdriver.chrome.driver", "src / परीक्षण / संसाधन / ड्राइवरों / chromedriver.exe");

नीचे दिए गए दृष्टिकोण का उपयोग करें:

WebDriverManager.chromedriver () सेटअप ()।
webDriver = नया ChromeDriver (chromeOptions);

और यह सब, आप कर रहे हैं!

अपने संदर्भ के लिए नीचे दिए गए लिंक का उपयोग करें- ब्राउज़र बाइनरी मैनेजर क्या है इसे सेलेनियम के लिए कैसे उपयोग किया जाए

या उसी के लिए chkout git प्रोजेक्ट- https://github.com/bonigarcia/webdrivermanager#webdrivermanager-as-java-d dependency


3
यह मेरे लिए काम करता है - 2.37 के डाउनलोड यहां देखे
Bourne

हाँ और अब नवीनतम है- ChromeDriver 2.38 - chromedriver.chromium.org/downloads
शर्मा

10

Chromedriver को अपडेट करने की आवश्यकता है: कंसोल में, रन करें: chromedriver-update 2.36


9

त्रुटि यह सब कहती है:

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

त्रुटि स्पष्ट रूप से शिकायत करती है InvalidOperationException के

आपका मुख्य मुद्दा संस्करण संगतता है आपके द्वारा उपयोग किए जा रहे बायनेरिज़ बीच है:

Chrome v60-62 का समर्थन करता है

  • आप उपयोग कर रहे हैं क्रोम = 65.0
  • ChromeDriver v2.37 के रिलीज़ नोट में स्पष्ट रूप से निम्नलिखित का उल्लेख है:

Chrome v64-66 का समर्थन करता है

  • आपका सेलेनियम क्लाइंट संस्करण हमारे लिए अज्ञात है।

तो क्रोमड्राइवर संस्करण ( v2.33 ) और क्रोम ब्राउज़र के बीच एक स्पष्ट बेमेल है संस्करण ( v65.0 ) के

उपाय

  • सेलेनियम को वर्तमान स्तरों पर अपग्रेड करें संस्करण 3.11.0
  • ChromeDriver को अपग्रेड करें ChromeDriver v2.37 के स्तर पर।
  • क्रोम संस्करण को क्रोम v64.x-66.x स्तरों के बीच रखें । ( ChromeDriver v2.37 जारी नोट के अनुसार )
  • अपने आईडीई के माध्यम से अपने प्रोजेक्ट कार्यक्षेत्र को साफ करें और केवल आवश्यक निर्भरता के साथ अपनी परियोजना का पुनर्निर्माण करें।
  • CCleaner उपकरण का उपयोग करें और अपने निष्पादन से पहले और बाद में सभी OS कामों को मिटा दें परीक्षण सूट
  • यदि आपका आधार वेब ब्राउज़र / वेब क्लाइंट संस्करण बहुत पुराना है, तो इसे रीवो अनइंस्टालर के माध्यम से अनइंस्टॉल करें और वेब ब्राउज़र / वेब क्लाइंट के हाल के जीए और रिलीज़ किए गए संस्करण को स्थापित करें
  • अपने को निष्पादित करें @Test

5

यदि आप मैक पर हैं:

brew upgrade selenium-server-standalone
brew upgrade chromedriver

यदि उपरोक्त दोनों स्थापित नहीं हैं:

brew install selenium-server-standalone
brew install chromedriver

3

मैं प्रोटेक्टर चला रहा हूं और उसी मुद्दे का सामना कर रहा हूं।

मेरे मामले में समाधान सरल था।

$ npm update protractor -g

$ webdriver-manager update


यदि आप gulp-protractorप्लगइन का उपयोग कर रहे हैं , तो इसे भी अपडेट करना सुनिश्चित करें।
इल्या विनोग्रादोव

2

यदि आप नवीनतम स्थिर Google Chrome (उदाहरण 67) पर हैं, तो मैं निम्नलिखित की सलाह देता हूं:

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

आदेशों के ये सेट आपके वर्तमान क्रोमड्राइवर को अनइंस्टॉल करेंगे, अपडेट की जांच करेंगे और नवीनतम पाया (जैसे 2.40) स्थापित करेंगे।


खुशी है कि यह मदद की!
एस। एस्टेव्स

1
Use xpaths instead of class names to locate elements

क्रोम और उसके ड्राइवरों को अपडेट करने के बाद इसने मेरी बिल्कुल मदद नहीं की !! मुझे नहीं पता कि यह कितना मायने रखता है, लेकिन मेरे लिए यह तब काम आया जब मैंने कक्षा का नाम xpath से बदल दिया। यह xpath है, मैं अजगर का उपयोग करके व्हाट्सएप संदेश भेजने को स्वचालित करता था।

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

पहले मैं उपयोग कर रहा था

driver.find_element_by_class_name('Some class Name Here')

0

मेरे मामले में टीम मेरे पास एक विशिष्ट क्रोमेड्रिवर फ़ाइल के लिए सेलेनियम पर है। अद्यतन क्रोमेड्राइवर का उपयोग करने के लिए सेलेनियम प्राप्त करने के लिए, मैंने पहले इसे काढ़ा के साथ स्थापित किया और फिर यह इंगित करने के लिए एक प्रतीकात्मक लिंक बनाया कि सेलेनियम इसके लिए कहां दिखता है:

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

0

इस मौके पर यह किसी ऐसे व्यक्ति के लिए मददगार हो सकता है जिसे मुझे एक अतिरिक्त कदम की जरूरत थी:

मैं MacOS X पर हूं। मैंने किया

brew upgrade chromedriver
bundle exec chromedriver-upgrade

मेरे पास क्रोमेड्रिवर-हेल्पर रत्न स्थापित है, लेकिन यह अटका हुआ है और इसके लिए "बंडल एग्जीक्यूटिव" उपसर्ग की आवश्यकता होती है या शेल कमांड को नहीं ढूंढ सकता है।

ऊपर ने मेरी समस्या ठीक कर दी।


0

जैसा कि दूसरों ने उल्लेख किया है, नवीनतम क्रोमेड्रिवर ने मेरे लिए चाल चली। यदि आप ड्राइवर को मैन्युअल रूप से डाउनलोड करते हैं और इस आदेश द्वारा आप ऐसा कर सकते हैं तो नए क्रोमेड्रिवर का उपयोग करने के लिए ऐपियम को बताना चाहते हैं:

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


0

मैं एक विंडोज वातावरण में सेलेनियम के साथ प्रोट्रैक्टर (वेबड्राइवर-मैनेजर) चला रहा हूं, और मुझे निम्नलिखित कार्य करने थे:

  1. webdriver-manager update --versions.chrome="2.36" (इसने नए Chromedriver को सही पथ पर डाउनलोड किया है लेकिन इसे प्रादेशिक में सक्षम नहीं किया है।)
  2. संपादित करें %userprofile%\AppData\Roaming\npm\node_modules\protractor\config.jsonऔर से chromedriverमान को बदल दिया 2.32है2.36
  3. मेरे पुराने chromedriver_2.32.exeको %userprofile%\AppData\Roaming\npm\node_modules\protractor\seleniumअच्छे उपाय के लिए हटाएं (निश्चित नहीं कि यदि आवश्यक हो तो।)

या:

जब एक और Chromedriver अद्यतन की आवश्यकता हो गई, तो मैं अब इस तरह से अपडेट करने में सक्षम नहीं था। कॉन्फ़िगरेशन सेटिंग अभी भी पुराने पथ और फ़ाइल नाम की अपेक्षा करती है, और मैं यह पता नहीं लगा सका कि उस सेटिंग को कहाँ बदलना है। इसलिए मैंने अभी नवीनतम क्रोमेड्रिवर का नाम बदलकर "क्रोमेड्राइवर। Exe" कर दिया है और इसे C: \ Windows \ system32 (जिसे हमेशा PATH द्वारा संदर्भित किया जाता है) में चिपका दिया है। क्रूड, लेकिन प्रभावी।



0

मुझे नहीं पता कि आप अभी भी इस पर हैं, लेकिन मुझे एक समान त्रुटि प्राप्त हो रही थी। मेरे पैटएच में क्रोमेड्रिवर का नवीनतम संस्करण था और Google क्रोम अपडेट किया गया था। मैं विंडोज़ 10 x64 बिट पर पायथन 3.6 चलाता हूं। मुझे वेबपेज पर ड्रॉपडाउन मेनू से मान चुनने की कोशिश हो रही थी। अजीब बात थी, यह ड्रॉपडाउन वैल्यू को सही तरीके से चुनेगा और पेज को अच्छी तरह से अपडेट किया जाएगा, लेकिन मुझे वैसे भी वह बेवकूफाना त्रुटि मिलेगी और मेरी स्क्रिप्ट फ्रीज हो जाएगी। इसलिए मैंने इसके लिए केवल एक अपवाद त्रुटि हैंडलर बनाया, क्योंकि जैसा मैंने कहा कि यह ड्रॉपडाउन मान को सही ढंग से चयनित करता है, इसलिए मैं सिर्फ उस गूंगा त्रुटि संदेश को बायपास करना चाहता था:

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

उम्मीद है कि किसी को यह उपयोगी लगता है।


0

मुद्दा क्रोमेड्रिवर और क्रोम ब्राउज़र संस्करण में बेमेल होने के कारण है। नीचे दिए गए लिंक क्रोम ब्राउज़र के संस्करण का समर्थन करने वाले क्रोमेड्रिवर के संस्करणों को निर्दिष्ट करते हैं।

http://chromedriver.chromium.org/downloads

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.