seleniumer’s diary

「手動でExcelにスクショ貼付け」地獄からきました。テスト自動化しか望みがありません。java + selenium(since 2015/5)

MacOSでChromeが立ち上がらない

これは悩みました。
selenium Gridでノードもハブも立ち上がっていて、firefoxなら動くのにChromeは動かない。
UnknownError: unknown error: cannot find Chrome binary
Chromeのバイナリーファイル、つまりアプリケーション本体が見つからないって。
MacOSChromeインストールパスをノード側のjsonに書いても、shellのjarファイル呼び出しコマンドに引数で書いてみてもうまくいかない。
フルパスで書いてるのに。
$ java -jar selenium-server-standalone-2.44.0.jar -Dwebdriver.chrome.driver=chromedriver
 -Dwebdriver.chrome.bin={フルパス}
結局、javaのテストプログラム側で
ChromeOptionsに書いてCapabitiesにぶっこんでなんとか動くという美しくない顛末になりました。
こんな感じ。
Map<String, Object> chromeOptions = new Map<String, Object>();
chromeOptions.put("binary", "{Chromeアプリフルパス}");
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability(ChromeOptions.CAPABILITY, chromeOptions);
〜 capabilitiesでRemoteWebDriverを初期化
これだと、ノード端末のChromeのフルパスをあらかじめ知っておかないと駄目なので、どうもやりにくい。Gridをうまく活用してるっぽくない。
jsonに書く方法がシンプルが良いのだろうけどお作法がわからないなぁー。

引用元