将浏览器升级到 Firefox 47 后如何在机器人框架中使用 Marionette Web 驱动程序
问题:将浏览器升级到 Firefox 47 后如何在机器人框架中使用 Marionette Web 驱动程序
我正在使用机器人框架 Selenium2Library 在 Firefox 中运行测试。当我将 Firefox 升级到 47 版时,我发现 Firefox 在启动时会崩溃。该问题在 github 问题列表中,如下链接:https://github.com/SeleniumHQ/selenium/issues/2110。
所以我转向使用 Marionette 作为问题评论的建议,但结果并不好(错误显示:WebDriverException:消息:连接被拒绝,直接使用 selenium 无济于事)。同样来自 selenium2Library 指南页面,它告诉desired_capabilities 不适用于本地网络驱动程序。
所以我的问题是:
-
如何在 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 问题,所以我没有回答这个问题。如果需要,请提出单独的问题。
更多推荐

所有评论(0)