windows + python + selenium + PhantomJSで実行エラー(Network Error)
PhantomJSの使い方はいろんなブログに載っていますが、どうしても「Network Error」というhtmlがwebdriverから帰ってきてしまう状況でした(driver = webdriver.PhantmJS()の部分でエラーになる)。
起動する以前の問題のためか、検索しても引っかからず途方に暮れていたのですが、なんとかなったのでメモとして残します。
結論を言うと、IEのproxy設定を外したら上手くいきました><
自分の場合、社内のproxy環境下において、proxyの除外対象のURLであっても問答無用にエラーになりました。ただ、DOSプロンプトからは実行することができていたことで(phantomjs hello.jsなど)、なぜだ。。。と苦悩しました。家にパソコンを持って帰ってきて、さー原因を探ろうとプロキシを外してインターネット検索しながら動かしてみると、あら不思議、動くじゃありませんか。。。笑うしかなかった。
もし同様の方がいて、解決できる手助けとなれば幸いです。
以下は参考情報です。
■環境
■初期設定
下記のように公式サンプルで出てくるやつです。
from selenium import webdriver from selenium.webdriver.common.keys import Keys driver = webdriver.PhantomJS() driver.get("http://www.python.org") assert "Python" in driver.title elem = driver.find_element_by_name("q") elem.clear() elem.send_keys("pycon") elem.send_keys(Keys.RETURN) assert "No results found." not in driver.page_source driver.close()
■事象
- Network Errorというhtmlが返ってくる(今サンプルが手元にない)。
- Chrome("path_to_webdriver.exe")やFirefox()のwebdriverの場合にはちゃんと動く
- IE("path_to_webdriver.exe")はphantomJS()と同じくエラー(セキュリティ設定のProtected Mode以前の状態)
- DOSからphantomjs hello.jsなどは動いて、正常に終了する(パス設定、webdriverも問題なさそう)
- firewallやセキュリティソフトを無効にしても変化なし(エラーのまま)