在ubuntu上从python启动selenium

我有以下脚本

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现在应该能像往常一样实例化。