Python Selenium Geckodriver 连接被拒绝

Python Selenium Geckodriver Connection refused

我花了几个小时试图让 Selenium 与 Python 一起工作,但运气不好 这个错误信息 selenium.common.exceptions.WebDriverException: Message: connection refused 这是我用过的例子:-

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()

这是我安装的依赖 apt-get install -y xorg xvfb dbus-x11 xfonts-100dpi xfonts-75dpi xfonts-cyrillic

这是/root/geckodriver.log输出

1493938773101 geckodriver INFO Listening on 127.0.0.1:40876 1493938774156 geckodriver::marionette INFO Starting browser /usr/lib/firefox/firefox.sh with args ["-marionette"] (firefox:3128): GLib-GObject-CRITICAL **: g_object_ref: assertion 'object->ref_count > 0' failed

我 运行 Selenium 在 Ubuntu 14.04 64-bit VPS 具有 128MB RAM 的远程服务器上 我不知道是什么让 Selenium 无法与 Chrome 和 Firefox 的浏览器驱动程序通信。

好吧,我放弃了 Geckodriver,我使用 PhantomJS 作为我的网络驱动程序。

 from selenium import webdriver  
 display = Display(visible=0, size=(800, 600))
 display.start() 
 driver = webdriver.PhantomJS()
 driver.get('http://www.python.org')
 html_source = driver.page_source
 print ("html_source:",html_source) 
 driver.quit()

以下是我用来安装 PhantomJS 的步骤:

cd ~
export PHANTOM_JS="phantomjs-2.1.1-linux-x86_64"
wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
tar xvjf $PHANTOM_JS.tar.bz2
mv $PHANTOM_JS /usr/local/share
ln -sf /usr/local/share/$PHANTOM_JS/bin/phantomjs /usr/local/bin



Python  Selenium        
apt-get install python-pip  -y 
pip uninstall pyvirtualdisplay
apt-get install x11vnc xvfb fluxbox
Xvfb :99 -ac
xvfb-run  -a   python 99.py
pip uninstall selenium
pip install selenium==2.53.1

另见 How to install PhantomJS on Ubuntu

请先检查您的 "firefox" 浏览器版本。

我发现它在某些时候非常混乱。我使用的是 Raspbian,用 apt-get 下载的 "Iceweasel" 是 Firefox 52 版本,它不适用于 geckodriver 0.19(这个需要 Firefox 55 或更高版本)。

对我有用的是下载 geckorvider v0.16 并解决了问题。

此外,您可能不需要 xorg 来使其工作,我需要的唯一软件包是 xfvb 和 iceweasel。