【发布时间】:2016-08-18 23:05:10
【问题描述】:
所有,
最近,我为使用 firefox 和 selenium 的屏幕截图解决方案设置了一个新的 ubuntu 服务器(版本 14.04.3)。虽然从firefox v47开始有很多关于这个话题的讨论,但似乎都无法解决我的问题。
我的python脚本如下:
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
caps = DesiredCapabilities.FIREFOX
caps["marionette"] = True
caps["binary"] = "/usr/bin/firefox"
browser = webdriver.Firefox(capabilities=caps)
browser.set_window_size(1200, 2400)
对于我的开发服务器,我有 firefox v47.0.1 和 selenium 2.53.5,并且代码有效。 但是在我的新系统中,一开始我有 firefox 48 和 selenium 2.53.6,我得到了错误:
browser = webdriver.Firefox(capabilities=caps)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py", line 65, in __init__
self.service.start()
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/common/service.py", line 71, in start
os.path.basename(self.path), self.start_error_message)
WebDriverException: Message: 'wires' executable needs to be in PATH.
我尝试将 firefox 二进制文件添加到 PATH:
export PATH=$PATH:/usr/bin/firefox
在这之后,我得到了新的错误:
browser = webdriver.Firefox(capabilities=caps)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py", line 65, in __init__
self.service.start()
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/common/service.py", line 64, in start
stdout=self.log_file, stderr=self.log_file)
File "/usr/lib/python2.7/subprocess.py", line 710, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1327, in _execute_child
raise child_exception
OSError: [Errno 20] Not a directory
Exception AttributeError: "'Service' object has no attribute 'process'" in <bound method Service.__del__ of <selenium.webdriver.firefox.service.Service object at 0x7fe3183edf50>> ignored
here 的帖子提到 v48 应该可以解决这个问题,但似乎不是。然后我将 firefox 降级到 v47.0.1,但仍然出现相同的错误。我检查了 v2.53.6 和 v2.53.5 中的 selenium 代码,无法真正确定问题所在。然后我将 selenium 卸载到 v2.53.5。但仍然得到同样的错误。我认为我的与带有 selenium 的 firefox 相关的设置可能有问题,但无法进一步调试。
有人可以帮忙吗? 非常感谢
志宏
【问题讨论】: