なんとか動くようになったけど、久々にめっちゃハマった(´;ω;`)
最近のChromeって、コード経由でコントロールするときにSeleniumを挟まずにChromeDriver単体で触ることができるんですね。知らずに生きてましたわ;;
というわけで、CodeceptionでChromeDriver経由でChromeを触ってみました。
(ちなみに、使用しているOSはWindow 10 Home 64bitで、Git Bash(64bit)をインストールして、これをシェルとして使っています。)
この辺のChromeDriverを使うまでの手順は公式ページのWebDriverのページに書いてあるものをそのまま実行しています。
To run tests in Chrome browser you may connect to ChromeDriver directly, without using Selenium Server.
1. Install ChromeDriver.
2. Launch ChromeDriver:chromedriver --url-base=/wd/hub
3. Configure this module to use ChromeDriver port:
引用元: WebDriver – Codeception – Documentation (http://codeception.com/docs/modules/WebDriver#ChromeDriver)
この通りにやってみて、シェルで「./vendor/bin/codecept run」と走らせてみたのですが、エラーが発生します。
1 2 3 |
[Facebook\WebDriver\Exception\WebDriverException] JSON decoding of remote response failed. Error code: 4 The response: 'unhandled request' |
「レスポンスがJSONデコードできないよ!」って言うエラーですけど、問題はそこではなくて、ChromeDriverからのレスポンスが「unhandled request」ってなってるところ。
一応Chromedriverをブラウザ経由で(http://localhost:9515)見てみましたが、同じレスポンスが帰ってきます。これじゃあさっぱり前に進みませんねぇ。
なぜなのかわからず、ChromeDriver周りのエラーをググっていったら、こんな記事を発見。
Issue with using selenium and webdriver doc · Issue #2968 · electron/electron · GitHub
https://github.com/electron/electron/issues/2968
Windowsでは動かないと、似たような問題を訴えてらっしゃいます。
そしてこの人がやってみたことは、–url-baseのパスを「wd/hub」にすること。
1 |
chromedriver --url-base=wd/hub |
改めてコマンドを叩いたら、バッチリ動きました。
おうふ、マジかよ……(‘A`)
多分Linuxでは問題なく動くんだろうなぁ。
Windowsなんぞで動かすやつなんぞしらん!ってことなのでしょか?つらみ(´;ω;`)