5

के लिए वेबड्राइवर नहीं बना सकता है मुझे सेलेनियम वेबड्राइवरजेएस सेट करने में कुछ परेशानी हो रही है। मेरा लक्ष्य जावास्क्रिप्ट (नोड) का उपयोग कर क्रोम ब्राउज़र पर सेलेनियम परीक्षण चलाने के लिए है।सेलेनियम वेबड्राइवरजेएस, क्रोम

मैं https://code.google.com/p/chromedriver/wiki/GettingStarted

रूप https://code.google.com/p/selenium/wiki/WebDriverJs पर निर्देशों का पालन कर रहा हूँ और साथ ही सबसे पहले मैं chromedriver डाउनलोड, और एक टर्मिनल पर यह भाग गया:

$ ./chromedriver 
Starting ChromeDriver (v2.2) on port 9515 

और फिर, मैं सेलेनियम-webdriver स्थापित:

$ npm install selenium-webdriver 
npm http GET https://registry.npmjs.org/selenium-webdriver 
npm http 304 https://registry.npmjs.org/selenium-webdriver 
[email protected] node_modules/selenium-webdriver 

फिर, मैंने नोड कंसोल शुरू किया और वेबड्राइवर उदाहरण

बनाने की कोशिश की
$ node 
> var webdriver = require('selenium-webdriver') 
undefined 
> var driver = new webdriver.Builder().usingServer('http://localhost:9515/wd/hub').withCapabilities(webdriver.Capabilities.chrome()).build(); 
undefined 
> 
timers.js:103 
      if (!process.listeners('uncaughtException').length) throw e; 
                    ^
UnknownCommandError: unknown command: wd/hub/session 
    at new bot.Error (/selenium/node_modules/selenium-webdriver/lib/atoms/error.js:109:18) 
    at Object.bot.response.checkResponse (/selenium/node_modules/selenium-webdriver/lib/atoms/response.js:103:11) 
    at /selenium/node_modules/selenium-webdriver/lib/webdriver/webdriver.js:133:20 
    at /selenium/node_modules/selenium-webdriver/lib/goog/base.js:1178:15 
    at webdriver.promise.ControlFlow.runInNewFrame_ (/selenium-webdriver/lib/webdriver/promise.js:1438:20) 
    at notify (/selenium/node_modules/selenium-webdriver/lib/webdriver/promise.js:328:12) 
    at notifyAll (/selenium/node_modules/selenium-webdriver/lib/webdriver/promise.js:297:7) 
    at fulfill (/selenium/ 

और अब मैं अवरुद्ध हूं। क्या कोई इस पर मेरी मदद कर सकता है? मुझे यहां क्या समझ नहीं आ रहा है?

धन्यवाद

उत्तर

13

यहाँ चीजों की युगल।

  1. डिफ़ॉल्ट रूप से, क्रोमेड्रिवर सर्वर /, नहीं/wd/hub पर आदेशों को संभालता है। तो अगर आप ऐसा करने में सक्षम होना चाहिए:

    new webdriver.Builder().usingServer('http://localhost:9515').build(); 
    
  2. आप chromedriver, स्टैंडअलोन सेलेनियम सर्वर के रूप में एक ही हस्ताक्षर है --url-base=/wd/hub के साथ शुरू करने के लिए चाहते हैं।

  3. chromedriver खुद के शुरू करने के लिए कोई ज़रूरत नहीं है - आपके द्वारा Chrome का अनुरोध और एक सर्वर स्थान को छोड़ देते हैं, तो सेलेनियम-webdriver यह तुम्हारे लिए क्या करेंगे (सुनिश्चित करें कि chromedriver बनाने के अपने सिस्टम पर पाया जा सकता है PATH):

    new webdriver.Builder() 
        .withCapabilities(webdriver.Capabilities.chrome()) 
        .build(); 
    
+0

आपके उत्तर देने के लिए धन्यवाद, मैं यह कोशिश करूंगा! – haejeong87

+0

बहुत बहुत धन्यवाद, यह पूरी तरह से काम किया। अब, अगर मैं पूछ सकता हूं, क्या सिस्टम पाथ का उपयोग करने के बजाय कोड में क्रोमरेड्राइवर का स्थान निर्दिष्ट करने का कोई तरीका है? – haejeong87

+4

मुझे स्रोत कोड खोदना पड़ा, लेकिन यह इसके लायक था! 'नया क्रोम। सेवाबिल्डर (PATH_TO_BINARY) .build()' कुंजी था :) – haejeong87

संबंधित मुद्दे