selenium.common.exceptions.WebDriverException:消息:连接被拒绝

lev*_*ven 12 python selenium selenium-webdriver

这是我的代码:

from selenium import webdriver

browser = webdriver.Firefox()

browser.get('http://www.python.org')

browser.close()
Run Code Online (Sandbox Code Playgroud)

它在我运行此脚本时启动了firefox浏览器,但页面为空,然后命令行显示错误消息:

Traceback (most recent call last):
  File "ad.py", line 3, in <module>
    browser = webdriver.Firefox()
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py", line 76, in __init__
    keep_alive=True)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 92, in __init__
    self.start_session(desired_capabilities, browser_profile)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 179, in start_session
    response = self.execute(Command.NEW_SESSION, capabilities)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 236, in execute
    self.error_handler.check_response(response)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/errorhandler.py", line 192, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: connection refused
Run Code Online (Sandbox Code Playgroud)

我的python vesion是2.7.3,而selenium版本是selenium-3.0.0.b3.egg-info

请问,我该如何解决问题......

Cor*_*lus 17

检查你的geckodriver.log文件(应该与python文件在同一目录中)

如果它说Error: GDK_BACKEND does not match available displays然后安装pyvirtualdisplay:

pip install pyvirtualdisplay selenium
Run Code Online (Sandbox Code Playgroud)

您可能还需要xvfb:

sudo apt-get install xvfb # Debian

sudo yum install Xvfb # Fedora
Run Code Online (Sandbox Code Playgroud)

然后尝试添加此代码:

from pyvirtualdisplay import Display
display = Display(visible=0, size=(800, 600))
display.start()
Run Code Online (Sandbox Code Playgroud)

完整示例:

from pyvirtualdisplay import Display
from selenium import webdriver

display = Display(visible=0, size=(800, 600))
display.start()

browser = webdriver.Firefox()
browser.get('http://www.python.org')

browser.close()
Run Code Online (Sandbox Code Playgroud)