我有以下脚本
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
。
答案 0 :(得分:4)
我也在努力解决这个问题,而且我不得不使用旧版本的Firefox。这是我使用最新版Firefox的解决方案。然而,它涉及几个步骤
第1步。从此位置下载v0.9.0 Marionette ,下一代FirefoxDriver:https://github.com/mozilla/geckodriver/releases/download/v0.9.0/geckodriver-v0.9.0-linux64.tar.gz
第2步。将文件解压缩到所需的文件夹,并将其重命名为“wires”。在我的例子中,我在Documents下创建了一个名为“add_to_system_path”的文件夹。所以该文件在Documents / add_to_system_path / wires中(同时确保wire文件在其属性下可执行)
第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现在应该可以像往常一样实例化。
答案 1 :(得分:0)
最新版本的Firefox无法正常使用selenium。试试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/
所示的图形方式执行此操作