2017-05-04 123 views
3

我花了幾個小時試圖使硒與Python的作品沒有運氣 此錯誤消息 selenium.common.exceptions.WebDriverException: Message: connection refused 這是我使用的示例: -Python的硒Geckodriver連接被拒絕

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

這是depence我龍頭安裝 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 ::木偶INFO啓動瀏覽器聽力 /usr/lib/firefox/firefox.sh與ARGS [ 「-marionette」](火狐:3128): GLib的-的GObject - 臨界**:g_object_ref:斷言「對象 - > ref_count> 0」失敗

我上Ubuntu 14.04 64-bit運行硒VPS與128MB RAM 遠程服務器我想不出什麼使硒不能與Chrome和Firefox瀏覽器驅動程序進行通信。

回答

0

好的,我放棄了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 
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見。

+0

謝謝。我也對Selenium + Firefox + Geckodriver的無窮無盡的問題感到沮喪,而PhantomJS正常工作。 – Cerin

2

請先檢查您的「firefox」瀏覽器版本。

我發現它在某些時候非常混亂。我使用Raspbian和apt-get下載的「Iceweasel」是一款Firefox 52版本,它不適用於Geckodriver 0.19(這個版本需要Firefox 55或更高版本)。

我工作的是下載geckorvider v0.16,並解決了這個問題。另外,你可能不需要xorg來使其工作,我需要的唯一軟件包是xfvb和iceweasel。

+0

我嘗試了多個版本,但沒有一個能夠正常工作,因爲Firefox和chrome驅動程序與服務器混淆,沒有圖形輸出。 PhantomJS完成我所有的要求,並像真正的瀏覽器一樣工作。 –

+0

xvfb應該足以應付這個問題,也許這些問題的根源在於你已經安裝的一些依賴關係? 您是否有機會在安裝了xvfb和selenium的「乾淨」帳戶上進行測試? –