23

node.js selenium Web ドライバーの例を試しています...

var webdriver = require('selenium-webdriver');

var driver = new webdriver.Builder().
   usingServer('http://localhost:4444/wd/hub').
   withCapabilities(webdriver.Capabilities.chrome()).
   build();

driver.get('http://www.google.com');
driver.findElement(webdriver.By.name('q')).sendKeys('webdriver');
driver.findElement(webdriver.By.name('btnG')).click();
driver.wait(function() {
 return driver.getTitle().then(function(title) {
   return title === 'webdriver - Google Search';
 });
}, 1000);

driver.quit();

...しかし、エラーが発生しました

promise.js:1542
      throw error;
            ^
UnknownError: The path to the driver executable must be set by the webdriver.chrome.driver system property; for more information, see http://code.google.com/p/selenium/wiki/ChromeDriver. The latest version can be downloaded from http://code.google.com/p/chromedriver/downloads/list
    at new bot.Error (/Users/maks/Dropbox/nodeApps/orgi/node_modules/selenium-webdriver/lib/atoms/error.js:109:18)

私はPATH変数を設定すると推測しました:

$ cat .bashrc

export PATH=$PATH:/usr/local/git/bin/
export PATH=$PATH:~/bin
export PATH=$PATH:~/Dropbox/chromedriver

コンソールを再起動しますが、同じエラーが発生しました。

4

5 に答える 5

6

誰かがこのエラーを受け取った場合に備えて:

スレッド「メイン」com.beust.jcommander.ParameterException での例外: 不明なオプション: -Dwebdrive

このスレッドが役立つかもしれません:

jar ファイルの前にパラメーターを使用する

 java [-options] -jar jarfile [args...] (to execute a jar file)

したがって、コマンドは次のようになります。

java -jar -Dwebdriver.chrome.driver="D:\dev\chromedriver.exe" selenium-server-standalone-2.35.0.jar 

将来誰かに役立つことを願っています。

于 2016-08-31T15:44:31.250 に答える
2

Selenium サーバーを使用せず、chromedriver を直接使用したい場合は、次のようにします。

var chrome = require('selenium-webdriver/chrome');
var service = new chrome.ServiceBuilder(__dirname + '/node_modules/.bin/chromedriver').build();
var driver = new chrome.createDriver(capabilities, service);

十分に文書化されていないため、ソースコードを少しいじる必要がありました。

于 2014-12-15T04:35:13.167 に答える
0

私が見つけた最も簡単な解決策は、chromedriver ファイルを実行可能にすることです。

正しくない:

**-rw-rw-r--** 1 user user  5560736 Jul 31 00:56 chromedriver

正しい:

**-rwxrwxr-x** 1 user user 58204704 Aug 14 08:18 phantomjs

chromedriverがphantomjsと一致すると、それは生き返りました

于 2015-08-16T23:59:26.557 に答える