Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 属性错误:';模块';对象没有属性';Firefox';_Python_Selenium_Firefox_Webdriver_Cygwin - Fatal编程技术网

Python 属性错误:';模块';对象没有属性';Firefox';

Python 属性错误:';模块';对象没有属性';Firefox';,python,selenium,firefox,webdriver,cygwin,Python,Selenium,Firefox,Webdriver,Cygwin,我正在尝试使用SeleniumWebDriver生成Firefox的一个实例。在过去,我能够在安装geckodriver并确保它在我的路径上之后做到这一点。然而,我改用phantomjs大约一年了,直到最近才决定再次使用Firefox。不幸的是,现在当我尝试实例化webdriver.Firefox对象时,我得到一个AttributeError,表示该对象没有称为“Firefox”的属性。我不确定是什么改变了导致这个错误 下面是一个shell会话,用于显示我正在使用的环境和错误的性质: ~$ wh

我正在尝试使用SeleniumWebDriver生成Firefox的一个实例。在过去,我能够在安装geckodriver并确保它在我的路径上之后做到这一点。然而,我改用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
~$which python
/cygdrive/c/Python27/python
~$哪个壁虎河
/cygdrive/c/Windows/geckodriver
~$python-i
win32上的Python 2.7.12(v2.7.12:d33e0cf91556,2016年6月27日,15:24:40)[MSC v.1500 64位(AMD64)]
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>从selenium导入webdriver
>>>browser=webdriver.Firefox()
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
AttributeError:“模块”对象没有属性“Firefox”
>>>主任(网络驱动程序)
['ActionChains'、'DesiredCapabilities'、'PhantomJS'、'Proxy'、'TouchActions'、'uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
>>>打印(webdriver.\uuuu文件\uuuu)
C:\Python27\lib\site packages\selenium\webdriver\\uuuuu init\uuuuuu.pyc
注意:当我尝试从本机windows cmd.exe和空闲运行它时,会发生完全相同的情况,因此此问题似乎不是Cygwin特有的


这在过去是有效的,我甚至在python安装的SitePackages目录中仔细检查了selenium目录,以确认所有必要的文件都在那里。firefox文件确实存在,所以我不知道为什么它们没有被识别,所以我仍然不确定是什么原因导致我的selenium安装中的webdriver.firefox停止工作,但我能够通过使用更新selenium来修复它

pip install -U selenium

注意:如果您对selenium库有任何自定义设置(例如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
::下一步使用下面给出的链接下载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文件,我希望它一定会对您有用