AttributeError: 'module' object has no attribute 'Firefox'
AttributeError: 'module' object has no attribute '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 information.
>>> 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 库有任何自定义(例如控制台 window 修复 windows 上的 phantomjs),您应该在使用 pip 更新之前先备份您的东西,然后恢复修改后的文件或根据需要重新修改。
我正在研究 ubuntu 16.04,我使用 geckodriver.exe 文件解决了这个问题。
:: 首先你必须使用这个命令安装 selenium >>
for python2:- python -m pip install --user selenium
for python3:- python3 -m pip install --user selenium
:: 下一步使用下面给出的 link 下载 geckodriver >>
https://github.com/mozilla/geckodriver/releases
:: 因为我正在使用 ubuntu 所以我下载 geckodriver-v0.24.0-linux64.tar.gz
现在提取它。
:: 现在在 python 代码中添加这些行 >>
from selenium import webdriver
browser = webdriver.Firefox(executable_path = '/home/aman/Downloads/geckodriver')
browser.get('https://www.google.com')
browser.close()
:: 在我的电脑中,我在 /home/aman/Downloads/geckodriver 中提取 geckodriver,因此您必须将 geckodriver 文件的整个路径放在提取文件的位置。
:: 现在 运行 这个 python 文件,我希望这一定对你有用。
对我来说,这是一个错字。正确的方式是“Firefox”,而不是“FireFox”(注意第二个大写字母“F”)
我正在尝试使用 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 information.
>>> 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 库有任何自定义(例如控制台 window 修复 windows 上的 phantomjs),您应该在使用 pip 更新之前先备份您的东西,然后恢复修改后的文件或根据需要重新修改。
我正在研究 ubuntu 16.04,我使用 geckodriver.exe 文件解决了这个问题。
:: 首先你必须使用这个命令安装 selenium >>
for python2:- python -m pip install --user selenium
for python3:- python3 -m pip install --user selenium
:: 下一步使用下面给出的 link 下载 geckodriver >>
https://github.com/mozilla/geckodriver/releases
:: 因为我正在使用 ubuntu 所以我下载 geckodriver-v0.24.0-linux64.tar.gz
现在提取它。
:: 现在在 python 代码中添加这些行 >>
from selenium import webdriver
browser = webdriver.Firefox(executable_path = '/home/aman/Downloads/geckodriver')
browser.get('https://www.google.com')
browser.close()
:: 在我的电脑中,我在 /home/aman/Downloads/geckodriver 中提取 geckodriver,因此您必须将 geckodriver 文件的整个路径放在提取文件的位置。
:: 现在 运行 这个 python 文件,我希望这一定对你有用。
对我来说,这是一个错字。正确的方式是“Firefox”,而不是“FireFox”(注意第二个大写字母“F”)