【问题标题】:Python Selenium Geckodriver Connection refusedPython Selenium Geckodriver 连接被拒绝
【发布时间】:2017-10-03 07:12:01
【问题描述】:

我花了几个小时试图让 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 带参数 ["-marionette"] (firefox:3128): GLib-GObject-CRITICAL **:g_object_ref:断言'object->ref_count> 0' 失败

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

【问题讨论】:

    标签: python selenium selenium-webdriver xvfb geckodriver


    【解决方案1】:

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

    【讨论】:

    • 谢谢。我也对 Selenium+Firefox+Geckodriver 无穷无尽的问题感到沮丧,而 PhantomJS 可以正常工作。
    【解决方案2】:

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

    在某些时候我发现它非常令人困惑。我使用的是 Raspbian,而通过 apt-get 下载的“Iceweasel”是 Firefox 52 版本,它不适用于 geckodriver 0.19(这个版本需要 Firefox 55 或更高版本)。

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

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

    【讨论】:

    • 我尝试了多个版本,但没有一个可以工作,因为 Firefox 和 chrome 驱动程序都与没有图形输出的服务器混淆。 PhantomJS 可以满足我的所有要求,并且像真正的浏览器一样工作。
    • xvfb 应该足以解决这个问题,也许这些问题源于您安装的某些依赖项?您是否有机会在仅安装 xvfb 和 selenium 的“干净”帐户上对其进行测试?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-27
    • 2018-03-18
    • 1970-01-01
    • 2018-04-21
    • 2018-04-23
    相关资源
    最近更新 更多