首页 文章

如何使用Robot Framework设置系统属性“webdriver.gecko.driver”?

提问于
浏览
2

我正在使用Robot Framework和Selenium2Library进行自动前端测试 . 通常我在Firefox浏览器中运行这些测试 . 从Firefox 47版开始,Selenium2Library的内置FirefoxDriver不再起作用了 . 通过互联网搜索了一下,发现,我必须切换到Marionette aka . 壁虎司机 .

尝试此操作时,我收到以下错误消息:

套件设置失败:WebDriverException:消息:驱动程序可执行文件的路径必须由webdriver.gecko.driver系统属性设置;有关更多信息,请参阅https://github.com/jgraham/wires . 最新版本可以从https://github.com/jgraham/wires下载

我再一次尝试在Internet上找到一种设置 GeckoDriver 可执行文件路径的方法,但我只找到了一种Java方法 . 既不适用于Python也不适用于Robot Framework . 有人知道如何在Python或_2558893中设置系统属性?

2 回答

  • 2

    如果您不想使用Marionette,请关注Mukesh的答案并更改版本 . 如果您想使用Marionette,最简单的方法是按照建议by the Mozilla developers将电线(或将来的geckodriver)添加到系统路径 .

    Python绑定不支持设置GeckoDriver的路径,而不是通过参数设置webdriver init . 因此,如果不能修改系统路径,那么前进的唯一方法就是将可执行文件的路径传递给Selenium . 从Robot Framework,您可以使用Create Webdriver执行此操作 . Firefox的__init__记录为here .

    *** Settings ***
    Library           Selenium2Library
    Library           Collections
    
    *** Test Cases ***
    Specifying Path To GeckoDriver
        ${ff default caps}    Evaluate    sys.modules['selenium.webdriver'].common.desired_capabilities.DesiredCapabilities.FIREFOX    sys,selenium.webdriver
        Set To Dictionary    ${ff default caps}    marionette=${True}
        Create Webdriver    Firefox    executable_path=C:\\stuff\\wires.exe
        Go To    https://stackoverflow.com
        Sleep    2 s
        [Teardown]    Close All Browsers
    
  • 0

    这是解决Firefox 47和Selenium2Library(导致您尝试Marionette / Gecko驱动程序)的兼容性问题的答案:

    Firefox 47有一个错误导致它与selenium webdriver崩溃 . Firefox 47.0.1中已修复此错误(请参阅release notes) .

    最新的Selenium2Library(或Selenium 2.53.6)和Firefox 47.0.1的组合应该可以正常工作 .

    希望这可以帮助 .

相关问题