如何绕过机器人中的牵线木偶问题?

时间:2017-03-29 15:34:39

标签: python-2.7 robotframework firefox-marionette

我被要求评估Robotframework并对我在大多数情况下看到的内容感到满意。然而,对于我来说它是一个可行的选择,我需要它在Firefox中工作。

Marionette功能在我的Ruby / Capybara环境中是一个问题,我可以将其关闭。

Capybara.register_driver :selenium do |app|
  Capybara::Selenium::Driver.new(app, :browser => :firefox, desired_capabilities: Selenium::WebDriver::Remote::Capabilities.firefox(marionette: false))
end

在Robot / Python 2.7 / ff44.0中获得相同的内容已在任一方向上产生错误。

当木偶开启时:

${dc}   Evaluate    sys.modules['selenium.webdriver'].DesiredCapabilities.FIREFOX  sys, selenium.webdriver
Set To Dictionary    ${dc}    marionette=${True}
Open Browser    ${url_bck_auto}     Firefox     desired_capabilities=${dc}

我明白了:

  

我们的产品摇滚|失败|   WebDriverException:消息:不支持的Marionette协议版本   2,要求3

如果我将其关闭,gecko会让我碰到ff51.0.1(32位)并收到不同的消息:

  

我们的产品摇滚|失败|   WebDriverException:消息:无法加载配置文件。可能是firefox   版本不匹配。您必须使用GeckoDriver代替Firefox 48+。   个人资料目录:c:\ users \ blah \ appdata \ local \ temp \ tmpqzlxha \ webdriver-
  py-profilecopy如果在FirefoxBinary中指定了log_file   构造函数,检查它的详细信息。

Geckodriver是版本0.15.0

任何帮助将不胜感激,谢谢!

1 个答案:

答案 0 :(得分:0)

Windows 10我正在运行Robot Framework 3.0Selenium2Library 1.8.0Selenium 3.0.2,当我开始您的示例时,或简化的单open browser http://google.com我得到使用Gecko 0.15.0时的结果相同。浏览器启动但未移至所需页面。驱动程序成功关闭但浏览器保持打开状态。

使用相同的设置时,但降级Geckodriver to 0.14.0结果会发生变化,浏览器会按预期运行。加载页面并在调用Close Browser关键字时关闭。

所以,我建议降级到Geckodriver 0.14.0