我有以下脚本
from selenium import webdriver browser = webdriver.Firefox() browser.get('http://localhost:8000') assert 'Django' in browser.title
我得到以下错误
$ python3 functional_tests.py Traceback (most recent call last): File "functional_tests.py", line 3, in <module> browser = webdriver.Firefox() File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/firefox/webdriver.py", line 80, in __init__ self.binary, timeout) File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/firefox/extension_connection.py", line 52, in __init__ self.binary.launch_browser(self.profile, timeout=timeout) File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/firefox/firefox_binary.py", line 68, in launch_browser self._wait_until_connectable(timeout=timeout) File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/firefox/firefox_binary.py", line 99, in _wait_until_connectable "The browser appears to have exited " selenium.common.exceptions.WebDriverException: Message: The browser appears to have exited before we could connect. If you specified a log_file in the FirefoxBinary constructor, check it for details.
pip3 list
显示了selenium (2.53.6)
。
firefox -v
显示Mozilla Firefox 47.0
。
Firefox的最新版本无法正常使用硒。 尝试46或45。
你可以在这里下载:ftp.mozilla.org/pub/firefox/releases
或者sudo apt-get install firefox=45.0.2+build1-0ubuntu1
您也可以按照此处显示的图形进行操作: http://www.howtogeek.com/117929/how-to-downgrade-packages-on-ubuntu/
我也一直在努力解决这个问题,并且不得不使用老版本的Firefox。 这是我的解决方案,使用最新版本的Firefox。 然而它涉及几个步骤
第1步 :从此位置下载v0.9.0 Marioette,下一代FirefoxDriver: https : //github.com/mozilla/geckodriver/releases/download/v0.9.0/geckodriver-v0.9.0-linux64.tar.gz
第2步。将文件解压到所需的文件夹,并将其重命名为“wires”。 在我的情况下,我在文档下创建了一个名为“add_to_system_path”的文件夹。 所以这个文件是在Documents / add_to_system_path / wires(还要确保这个wires文件是在它的属性下可执行的)
第3步。在您的主文件夹下创建一个名为“.pam_environment”的文件,然后添加此行并保存
PATH DEFAULT=${PATH}:/absolute/path/to/the/folder/where/wires/is/saved
这是告诉ubuntu将.pam_environment中的枚举目录添加到您的系统路径中
第4步。保存文件,注销用户会话,然后重新登录。这样做有必要使新添加的系统路径中的文件被ubuntu识别
第5步。使用下面的代码实例化浏览器实例:
` from selenium import webdriver from selenium.webdriver.common.desired_capabilities import DesiredCapabilities capabilities = DesiredCapabilities.FIREFOX capabilities["marionette"] = True browser = webdriver.Firefox(capabilities=capabilities) browser.get('http://your-target-url')`
Firefox现在应该能像往常一样实例化。