Selenium无法在OpenSUSE 42.1上运行:浏览器似乎已经退出,无法连接 [英] Selenium not working on OpenSUSE 42.1: The browser appears to have exited before we could connect
问题描述
我正在尝试在具有Gnome桌面和Firefox 47的本地计算机上使用Python 3.4运行Selenium.但是,最基本的任务已经失败,即打开浏览器窗口.我知道这个问题已经在几个SO帖子上问过了,但是没有一个答案能解决问题.
I'm trying to run Selenium with Python 3.4 on a local machine with Gnome desktop and Firefox 47. However, the most basic task is already failing, i.e. opening the browser window. I know that this question has been asked on several SO post now, but none of the answers is solving the problem.
我只是用pip install selenium
安装了Selenium.当我运行
I simply installed Selenium with pip install selenium
. When I run
from selenium import webdriver
driver= webdriver.Firefox()
我得到以下回溯:
WebDriverException Traceback (most recent call last)
<ipython-input-2-b517b01341f3> in <module>()
----> 1 driver= webdriver.Firefox()
/usr/lib/python3.4/site-packages/selenium/webdriver/firefox/webdriver.py in __init__(self, firefox_profile, firefox_binary, timeout, capabilities, proxy, executable_path, firefox_options)
79
80 executor = ExtensionConnection("127.0.0.1", self.profile,
---> 81 self.binary, timeout)
82 RemoteWebDriver.__init__(self,
83 command_executor=executor,
/usr/lib/python3.4/site-packages/selenium/webdriver/firefox/extension_connection.py in __init__(self, host, firefox_profile, firefox_binary, timeout)
49 self.profile.add_extension()
50
---> 51 self.binary.launch_browser(self.profile, timeout=timeout)
52 _URL = "http://%s:%d/hub" % (HOST, PORT)
53 RemoteConnection.__init__(
/usr/lib/python3.4/site-packages/selenium/webdriver/firefox/firefox_binary.py in launch_browser(self, profile, timeout)
66
67 self._start_from_profile_path(self.profile.path)
---> 68 self._wait_until_connectable(timeout=timeout)
69
70 def kill(self):
/usr/lib/python3.4/site-packages/selenium/webdriver/firefox/firefox_binary.py in _wait_until_connectable(self, timeout)
96 if self.process.poll() is not None:
97 # Browser has exited
---> 98 raise WebDriverException("The browser appears to have exited "
99 "before we could connect. If you specified a log_file in "
100 "the FirefoxBinary constructor, check it for details.")
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.
我已经尝试使用pyvirtualdisplay
并设置$DISPLAY
环境变量,但是没有帮助.
I have already tried using pyvirtualdisplay
and setting the $DISPLAY
environment variable, but nothing helped.
推荐答案
由于firefox更新到版本47 selenium不再运行.解决方法是使用木偶. Mozilla也建议这么做.
Since firefox update to version 47 selenium is not running any more. A work around is using Marionette. That's also recommended by Mozilla.
您可以使用的替代方法是使用较旧的firefox版本:
An alternative you can use is using older firefox version:
您可以在此处并在此处使用它:
You can download the binary here and use it here:
from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
binary = FirefoxBinary('path/to/binary')
driver = webdriver.Firefox(firefox_binary=binary)
这篇关于Selenium无法在OpenSUSE 42.1上运行:浏览器似乎已经退出,无法连接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!