selenium python停止Firefox加载(续)

如果你在使用selenium python时也碰到firefox一直加载的问题,而又没有比较好的解决方法,那么你也许可以试下这个反过来的思路:当它加载超时抛出异常。
仔细看selenium python的源码,发现它有一个api:

driver.set_page_load_timeout

注意单位是秒,如果网页加载超过了你设置的时间,那么它会发生异常:

selenium.common.exceptions.TimeoutException: Message: Timed out waiting for page load.

同时它还有另外一个api:

driver.set_script_timeout

这个是用来设置网页上脚本执行的超时时间(秒)。

‘Can not connect to GhostDriver’

我的环境是Mac OSX、Intellij IDEA、Python 3.5、Selenium、PhantomJS,结果在测试PhantomJS时:

driver = webdirver.PhantomJS()
dirver.get('http://www.baidu.com')
print(driver.current_url)
driver.quit()

老是出现错误:

WebDriverException: Message: 'Can not connect to GhostDriver'

解决这个问题也很简单,就是确保Python和PhantomJS在同一运行环境下,如果你的Python Interpreter是放在virtualenv里,而PhantomJS是安装在系统里的(通过brew安装?)那就会有这样的问题。
所以我最终在Run/Debug Configurations里把Python Interpreter指向系统的Python就可以了。