如何修复 Selenium WebDriverException:浏览器似乎在我们连接之前已经退出?
问题描述
我已经在我的 centos6.4 服务器上安装了 firefox 和 Xvfb 来使用 selenium webdriver.
I have installed firefox and Xvfb on my centos6.4 server to use selenium webdriver.
但是,当我运行代码时,我得到了一个错误.
But, when I run the code, I got an error.
from selenium import webdriver
browser = webdriver.Firefox()
错误
selenium.common.exceptions.WebDriverException: Message:
'The browser appears to have exited before we could connect. The output was: None'
我在 stackoverflow 上阅读了一些相关页面,有人建议删除 tmp 文件夹中的所有文件,所以我做到了.但是还是不行.
I read some related pages on stackoverflow and someone suggested to remove all files in tmp folder, so I did it. But, it still doesn't work.
谁能帮帮我?
提前谢谢你!
编辑
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.4/site-packages/selenium/webdriver/firefox/webdriver.py", line 59, in __init__
self.binary, timeout),
File "/usr/local/lib/python3.4/site-packages/selenium/webdriver/firefox/extension_connection.py", line 47, in __init__
self.binary.launch_browser(self.profile)
File "/usr/local/lib/python3.4/site-packages/selenium/webdriver/firefox/firefox_binary.py", line 64, in launch_browser
self._wait_until_connectable()
File "/usr/local/lib/python3.4/site-packages/selenium/webdriver/firefox/firefox_binary.py", line 103, in _wait_until_connectable
self._get_firefox_output())
selenium.common.exceptions.WebDriverException: Message: 'The browser appears to have exited before we could connect. The output was: None'
解决方案
对于 Google 员工来说,这个答案对我不起作用,我不得不使用 这个答案.我正在使用 AWS Ubuntu.
for Googlers, this answer didn't work for me, and I had to use this answer instead. I am using AWS Ubuntu.
基本上,我需要先安装 Xvfb,然后再安装 pyvirtualdisplay:
Basically, I needed to install Xvfb and then pyvirtualdisplay:
sudo apt-get install xvfb
sudo pip install pyvirtualdisplay
一旦我这样做了,这个 python 代码就可以工作了:
Once I had done that, this python code worked:
#!/usr/bin/env python
from pyvirtualdisplay import Display
from selenium import webdriver
display = Display(visible=0, size=(1024, 768))
display.start()
browser = webdriver.Firefox()
browser.get('http://www.ubuntu.com/')
print browser.page_source
browser.close()
display.stop()
感谢@That1Guy 的第一个回答
Thanks to @That1Guy for the first answer
相关文章