将浏览器升级到 Firefox 47 后如何在 robotsframework 中使用 Marionette Web 驱动程序

Posted

技术标签:

【中文标题】将浏览器升级到 Firefox 47 后如何在 robotsframework 中使用 Marionette Web 驱动程序【英文标题】:How to use Marionette web driver in robotframework after upgrade browser to Firefox 47 【发布时间】:2016-10-12 18:45:21 【问题描述】:

我使用机器人框架 Selenium2Library 在 Firefox 中运行测试。 当我将 Firefox 升级到 47 版时,我发现 Firefox 在启动时会崩溃。该问题在 github 问题列表中,如下链接: https://github.com/SeleniumHQ/selenium/issues/2110.

所以我转而使用 Marionette 作为问题 cmets 建议的,但结果并不好(错误显示: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

【问题讨论】:

我在徘徊,phantomjs是机器人的好选择吗? (看过一些网页,说不直接支持phantomjs,所以每个关键字都需要手动创建) 很久以前就添加了对 PhantomJS 的支持。根据您的设置,您可能需要使用关键字 Create Webdriver,但 Open Browser 也可以使用。我不能说这是否是一个好的选择,因为我只使用了“真正的”浏览器。 【参考方案1】:

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.***.com    ff

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

【讨论】:

以上是关于将浏览器升级到 Firefox 47 后如何在 robotsframework 中使用 Marionette Web 驱动程序的主要内容,如果未能解决你的问题,请参考以下文章

Firefox火狐浏览器升级后,每次打开火狐都会打开“Firefox已升级”这个网页,请问如何处理?

FireFox升级后FireBug不能使用

新升级的火狐浏览器每次启动都弹窗提示更新,检查附加插件和此版本的兼容性,如何关闭?已关闭了自动更新

ember-cli 0.0.47 升级后违反内容安全策略指令

Firefox 设置无法保存如何解决?

如何取消火狐浏览器自动升级功能