我正在使用robotframework Selenium2Library在Firefox中运行测试.
当我将Firefox升级到47版时,我发现Firefox在Firefox启动时会在崩溃时崩溃.问题出在
github问题列表中,如下链接:
https://github.com/SeleniumHQ/selenium/issues/2110.
所以我转向使用Marionette作为问题评论建议,但结果并不好(错误显示:WebDriverException:消息:连接被拒绝,并且直接使用selenium将无济于事).同样来自selenium2Library指南页面,它告诉desired_capabilities不适用于本地webdriver.
所以我的问题是:
>如何在Selenium中设置本地Marionette webdriver实例并传递给机器人进行进一步的测试操作?
>如果有一种方法可以继续使用没有webdriver支持的Firefox 47?
我按照这里的说明:
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}
最佳答案 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问题,所以我没有回答这个问题.如果需要,请另外提问.