firefox与selenium无法正常工作

时间:2016-08-18 14:09:30

标签: selenium firefox

所有

最近,我为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有关,但无法进一步调试。

有人可以帮忙吗? 非常感谢

志宏

2 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,我刚刚切换到Chrome网络驱动程序......

但如果您想继续使用Firefox,请尝试将selenium升级到3.0.0。

答案 1 :(得分:0)

你已经做好了所有事情。 我昨天将firefox升级到v48后遇到了同样的问题。最佳解决方案是降级回47.0.1(可以从here下载)与Selenium完全兼容( 2.35.1 用于Java或 2.35.0 for Python)

祝你好运!