[英]Can't run PhantomJS in python via Selenium
我过去3天一直试图通过硒运行PhantomJS并且没有成功。 到目前为止,我已尝试通过npm安装PhantomJS,从源代码构建它,通过apt-get安装并下载预构建的可执行文件并将其放在/ usr / bin / phantomjs中。
每次我能够运行此示例脚本的loadpeed.js:
var page = require('webpage').create(),
system = require('system'),
t, address;
if (system.args.length === 1) {
console.log('Usage: loadspeed.js <some URL>');
phantom.exit();
}
t = Date.now();
address = system.args[1];
page.open(address, function (status) {
if (status !== 'success') {
console.log('FAIL to load the address');
} else {
t = Date.now() - t;
console.log('Loading time ' + t + ' msec');
}
phantom.exit();
});
并使用'phantomjs test.js http://google.com '运行它,它的工作正常。
但是在这个小python脚本中通过selenium运行PhantomJS会产生错误:
from selenium import webdriver
browser = webdriver.PhantomJS()
browser.get('http://seleniumhq.org')
Traceback (most recent call last):
File "test.py", line 4, in <module>
browser.get('http://seleniumhq.org/')
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 176, in get
self.execute(Command.GET, {'url': url})
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 162, in execute
response = self.command_executor.execute(driver_command, params)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/remote_connection.py", line 350, in execute
return self._request(url, method=command_info[0], data=data)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/remote_connection.py", line 382, in _request
resp = self._conn.getresponse()
File "/usr/lib/python2.7/httplib.py", line 1045, in getresponse
response.begin()
File "/usr/lib/python2.7/httplib.py", line 409, in begin
version, status, reason = self._read_status()
File "/usr/lib/python2.7/httplib.py", line 373, in _read_status
raise BadStatusLine(line)
httplib.BadStatusLine: ''
用browser = webdriver.Firefox()替换第二个LOC工作正常。
我在Ubuntu 13.10桌面上,同样的错误发生在Ubuntu 13.04上。
Python:2.7 PhantomJS:1.9.2
我在这做错了什么?
似乎在较新的Selenium中引入了一些问题,请参阅
http://code.google.com/p/selenium/issues/detail?id=6690
我通过使用进一步使用了
pip install selenium==2.37
避免上面的堆栈跟踪。 仍然遇到driver.save_screenshot('foo.png')的问题导致了一个空文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.