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)
I 推測 PATH変数を設定するには:
$ cat .bashrc
export PATH=$PATH:/usr/local/git/bin/
export PATH=$PATH:~/bin
export PATH=$PATH:~/Dropbox/chromedriver
コンソールを再起動しますが、同じエラーが発生しました。
Selenium-server-standalone-*。jarを here から使用すると、webdriver.chrome.driver
起動時のプロパティ:
Java -jar Selenium-server-standalone-2.35.0.jar -Dwebdriver.chrome.driver="D:\dev\chromedriver.exe"
これにより、エラーがなくなります。 Javaコマンドラインオプション-Dproperty=value
は、システムプロパティ値を期待どおりに設定します。
誰かがこのエラーを受け取った場合に備えて:
スレッド「メイン」com.beust.jcommander.ParameterExceptionの例外:不明なオプション:-Dwebdrive
thisthreadが役立つ場合があります:
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
それが将来誰かを助けることを願っています。
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);
あまり文書化されていないので、ソースコードを少し調べなければなりませんでした。
私が見つけた最も簡単な解決策は、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に一致すると、命が吹き出されました