Firefox で selenium-webdriver のサンプルコードを動かすまでのメモ
背景
Firefox で自動テストするには Selenium IDE が定番だが 最近の Firefox では動作しない。
代替としてどうしようかと考えて、node.js で動かす selenium-webdriver ってのが目に入ったので試してみた。
前提
- Setting up your own test automation environment - ウェブ開発を学ぶ | MDN に従ってサンプルコードを動かすところまでやりたい
- Firefox v55 を使用
手順
- node.js は v8 以上を用意する
- npm istall selenium-webdriver
- Firefox の GeckoDriver として v0.14.0 を入手する
- 入手した GeckoDriver.exe を PATH に通すか、サンプルコードと同じディレクトリに置く
- サンプルコード
google_test.js
を作成した後、node google_test
で実行
すると Firefox が自動で立ち上がりサンプルの自動テスト(Googleを開いて「webdriver」で検索するテスト)が走るはず。 まあ想定する Firefox バージョンが違う(サンプルコードのは古い Firefox を想定してるが v55 は仕様が変わってる)みたいで途中でコケるけど。ともあれ実行可能なところまではできた。
(参考)上記手順に至るまでにハマったところ
- node.js が v8 以上
- selenium-webdriver が async 構文を使っているが、これが node v8 以降の機能なので古い node だとエラーが出る
- 参考: javascript - SyntaxError: Unexpected identifier in selenium-webdriver/lib/http.js:454 async execute(command) - Stack Overflow
- GeckoDriver は v0.14.0 を使う件
- ソースは失念...
- 最新の GeckoDriver だと Firefox 側の仕様変更がうんたらかんたらで動かないらしい