5

Selenium WebDriverJSの設定に問題があります。私の目標は、Javascript(ノード)を使用してChromeブラウザでセレンテストを実行することです。Selenium WebDriverJS、Chrome用webdriverを作成できません

私はhttps://code.google.com/p/selenium/wiki/WebDriverJsなどhttps://code.google.com/p/chromedriver/wiki/GettingStarted

まず上の指示に従っています私は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 

次に、ノードコンソールを起動し、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. 既定では、chromedriverサーバーは/、/ wd/hubではなくコマンドを処理します。だから、行うことができる必要があります:

    new webdriver.Builder().usingServer('http://localhost:9515').build(); 
    
  2. あなたはchromedriverは、スタンドアロンのSeleniumサーバーと同じシグネチャを持つ--url-base=/wd/hubでそれを開始したい場合。

  3. chromedriverを自分で起動する必要はありません - あなたがChromeを要求し、(chromedriverがシステムPATHで見つけることができることを確認してください)サーバーの場所を省略した場合、セレンwebdriverをあなたのためにそれを行います。

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

お返事ありがとうございます、私はこれを試してみましょう! – haejeong87

+0

ありがとう、それは完全に働いた。さて、もし私が尋ねることができるのであれば、システムPATHを使うのではなく、コード内にchromedriverの場所を指定する方法がありますか? – haejeong87

+4

私はソースコードを掘り下げなければならなかったが、それは価値があった! 'new chrome.ServiceBuilder(PATH_TO_BINARY).build()'がキーです:) – haejeong87

関連する問題