Node.js
WebDriver
Selenium

Selenium WebDriver でMacとWindows共通に動く環境を作る(ChromeDriverをServerで)

More than 1 year has passed since last update.

MacとWindows両方で、同じコードが通るSelenium WebDriverの動作環境を作る。
WindowsだけだとServer立てたりしなくても、chromedriver.exeダウンロードしてきてコード置いてるのと同じフォルダに置いてるだけでよかったんだけど、Macだと面倒っぽいので、どちらもServer立てて。

他所から内容もらってきてるだけなんだけど、両方まとめてるところがないので。

Macの場合

こちらの通り。

サーバ、chromedriverのインストール

$ brew update
$ brew install selenium-server-standalone
$ brew install chromedriver

サーバ起動

$ /usr/local/bin/selenium-server -Dwebdriver.chrome.bin="/Applications/Google Chrome.app" -Dwebdriver.chrome.driver=/usr/local/bin/chromedriver

shファイルにするなら、

selenium_server.sh
#!/bin/sh

/usr/local/bin/selenium-server -Dwebdriver.chrome.bin="/Applications/Google Chrome.app" -Dwebdriver.chrome.driver=/usr/local/bin/chromedriver &

Windowsの場合

こちらの通り。

サーバ、chromedriverのインストール

  1. DLページでダウンロード
  2. DLした「selenium-server-standalone-X.XX.X.jar」をCドライブ直下に配置
  3. ここから最新バージョンのchromedriver_win32.zipをダウンロード(win64はない)。
  4. Cドライブ直下に"chromedriver"フォルダを作り、解凍したchromedriver.exeを設置

サーバ起動

C:\XX\XX> java -jar C:\selenium-server-standalone-X.XX.X.jar -Dwebdriver.chrome.driver=C:\chromedriver\chromedriver.exe

batファイルにするなら、

selenium_server.bat
start java -jar C:\selenium-server-standalone-X.XX.X.jar -Dwebdriver.chrome.driver=C:\chromedriver\chromedriver.exe

Web Driverにつなぐコード

コードをおいたフォルダかグローバル(-gオプションをつける)に

$npm install selenium-webdriver

でnodeのモジュールインストールして、

selenium-test.js
var webdriver = require('selenium-webdriver'),
    By = webdriver.By,
    until = webdriver.until;

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

//後はむにゃむにゃ...他の記事など参考に

これで同じコードがWindows/Mac両方で動きます。