我正在尝试使用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目录中的硒目录,以确认所有必需的文件都在那里。firefox文件确实存在,所以我不知道为什么它们未被识别
所以我仍然不太确定硒安装中的更改是什么导致了webdriver.Firefox停止工作,但是我能够通过使用以下命令更新硒来修复它
pip install -U selenium
注意:如果您对selenium库进行了任何自定义设置(例如Windows上phantomjs的控制台窗口修复程序),则应先备份内容,然后再使用pip更新,然后还原修改后的文件或根据需要进行重新修改。