Python 将浏览器升级到Firefox 47后如何在robotframework中使用木偶web驱动程序

Python 将浏览器升级到Firefox 47后如何在robotframework中使用木偶web驱动程序,python,selenium,firefox,webdriver,robotframework,Python,Selenium,Firefox,Webdriver,Robotframework,我使用robotframework Selenium2库在Firefox中运行测试。 当我将Firefox升级到47版时,我发现Firefox会在Firefox启动时崩溃。该问题位于github问题列表中,如下链接: 因此,我转而按照问题评论的建议使用木偶,但结果并不好(错误显示:WebDriverException:Message:connection Decepted,直接使用selenium没有帮助)。同样在Selenium2库指南页面上,它告诉我们所需的_功能将不适用于本地webdri

我使用robotframework Selenium2库在Firefox中运行测试。 当我将Firefox升级到47版时,我发现Firefox会在Firefox启动时崩溃。该问题位于github问题列表中,如下链接:

因此,我转而按照问题评论的建议使用木偶,但结果并不好(错误显示:WebDriverException:Message:connection Decepted,直接使用selenium没有帮助)。同样在Selenium2库指南页面上,它告诉我们所需的_功能将不适用于本地webdriver

因此,我的问题是:

  • 如何在Selenium中设置本地木偶webdriver实例并将其传递给robot进行进一步的测试操作
  • 如果有办法在不支持webdriver的情况下继续使用Firefox47
  • 我按照这里的指示:

    在python文件中:

    def returnFirefoxCapabilities(marionetteBinaryPath):
        firefox_capabilities = DesiredCapabilities.FIREFOX
        firefox_capabilities['marionette'] = True
        firefox_capabilities['binary'] = marionetteBinaryPath
        return firefox_capabilities
    
    在robot文件中:

    *** Settings ***
    Library           Selenium2Library  #build-in library
    *** Test Case ***
    try marionette
       ${firefox_capabilities}=     returnFirefoxCapabilities    path/wires
       open browser  url=www.google.com    desired_capabilities=${firefox_capabilities}
    

    Selenium2Library不支持为本地WebDriver传入所需的功能。但是您可以更改Firefox的默认功能,它将应用于给定浏览器类型的所有未来webdriver实例,直到解释器(Python)退出。我能够用Firefox47、Selenium 2.53.5和Geckodriver 0.8.0运行简单的测试

    ${ff default caps}    Evaluate    sys.modules['selenium.webdriver'].common.desired_capabilities.DesiredCapabilities.FIREFOX    sys,selenium.webdriver
    Set To Dictionary    ${ff default caps}    marionette=${True}
    Open Browser    https://www.stackoverflow.com    ff
    

    您询问了如何传入webdriver实例。这在我看来是一个X-Y问题,所以我没有回答这个问题。如果需要,请另外问一个问题。

    我在闲逛,幻影是机器人的好选择吗?(读过一些网页,说不直接支持phantomjs,所以每个关键字都需要手动创建)对phantomjs的支持是很久以前添加的。根据您的设置,您可能需要使用关键字Create Webdriver,但开放式浏览器也可以使用。我不能说这是否是一个好的选择,因为我只使用了“真正的”浏览器。