微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – AttributeError:’module’对象没有属性’Firefox’

我正在尝试使用selenium webdriver来生成Firefox的一个实例.在过去,我能够在安装geckodriver并确保它在我的PATH中之后执行此操作.然而,我转而使用phantomjs大约一年,而且最近才决定再给Firefox一个旋转.不幸的是,现在当我尝试实例化webdriver.Firefox对象时,我得到一个AttributeError,说该对象没有这样的属性叫做“Firefox”.我不确定是什么改变导致这个错误.

下面是一个shell会话,用于显示我正在使用的环境以及错误的性质:

~$which python
/cygdrive/c/Python27/python
~$which geckodriver
/cygdrive/c/Windows/geckodriver
~$python -i
Python 2.7.12 (v2.7.12:d33e0cf91556, Jun 27 2016, 15:24:40) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more @R_434_4045@ion.
>>> from selenium import webdriver
>>> browser = webdriver.Firefox()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'Firefox'
>>> dir(webdriver)
['ActionChains', 'DesiredCapabilities', 'PhantomJS', 'Proxy', 'TouchActions', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__', '__version__', 'common', 'phantomjs', 'remote']
>>> print(webdriver.__file__)
C:\Python27\lib\site-packages\selenium\webdriver\__init__.pyc

注意:当我尝试从本机Windows cmd.exe和IDLE运行它时会发生完全相同的事情,所以这个问题似乎并不特定于Cygwin

这在过去有效,我甚至在我的python安装中检查了site-packages目录中的selenium目录,以确认所有必需的文件都在那里. firefox文件确实存在,所以我不知道他们为什么不被识别

解决方法:

所以我仍然不确定在我的selenium安装中发生了什么变化导致webdriver.Firefox停止工作,但我能够通过更新selenium来修复它

pip install -U selenium

注意:如果您对selenium库有任何自定义(例如Windows上的phantomjs的控制台窗口修复),您应该在使用pip更新之前先备份您的资料,然后恢复已修改文件或根据需要重新修改.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐