Python Selenium Geckodriver Connection拒绝了

时间:2017-05-04 23:20:14

标签: python selenium selenium-webdriver xvfb geckodriver

我花了好几个小时试图让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在127.0.0.1:40876上收听   1493938774156 geckodriver :: marionette INFO启动浏览器   /usr/lib/firefox/firefox.sh与args [“-marionette”](firefox:3128):   GLib-GObject-CRITICAL **:g_object_ref:断言'object-> ref_count>   0'失败

我在Ubuntu 14.04 64-bit VPS远程服务器上运行Selenium,内存为128MB 我无法弄清楚是什么让Selenium无法与浏览器驱动程序Chrome和Firefox进行通信。

2 个答案:

答案 0 :(得分:4)

请先查看“firefox”浏览器版本。

我发现它在某些方面非常令人困惑。我正在使用Raspbian,并且使用apt-get下载的“Iceweasel”是一个Firefox 52版本,它与geckodriver 0.19不兼容(这个需要Firefox 55或更高版本)。

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

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

答案 1 :(得分:2)

好的,我放弃了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