我正在使用robotframework Selenium2Library在Firefox中运行测试。 当我将Firefox升级到47版时,我发现Firefox在Firefox启动时会在崩溃时崩溃。问题出在github问题列表中,如下链接: https://github.com/SeleniumHQ/selenium/issues/2110
所以我转向使用Marionette作为问题评论建议,但结果并不好(错误显示:WebDriverException:消息:连接被拒绝,并且直接使用selenium将无济于事)。同样来自selenium2Library指南页面,它告诉desired_capabilities不适用于本地webdriver。
所以我的问题是:
我按照说明操作: https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver
在python文件中:
def returnFirefoxCapabilities(marionetteBinaryPath):
firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True
firefox_capabilities['binary'] = marionetteBinaryPath
return firefox_capabilities
并在机器人文件中:
*** 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}
答案 0 :(得分:2)
Selenium2Library不支持为本地Web驱动程序传递所需的功能。但是您可以更改Firefox的默认功能,它将适用于给定浏览器类型的所有未来webdriver实例,直到解释器(Python)退出。我能够使用Firefox 47,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问题,所以我没有回答这个问题。如果需要,请另外提问。