【问题标题】:Ruby & Selenium - how to pass arguments to browser?Ruby & Selenium - 如何将参数传递给浏览器?
【发布时间】:2016-09-22 19:43:20
【问题描述】:

我的搜索只找到了 Java 的答案 - thisthis

据我所知,selenium gem 不包含addCommandLineOptions,但它确实包含WebDriver::Remote::Capabilities

如何使用它来添加参数?我知道你将它作为desired_capabilities: 传递给驱动构造函数,但是以什么格式?

不幸的是,the documentation 特别没用

【问题讨论】:

    标签: ruby selenium firefox


    【解决方案1】:

    您可以通过关注 Chrome 来设置--start-maximized。详情请见this post

    Capybara.register_driver :chrome_maximize do |app|
      caps = Selenium::WebDriver::Remote::Capabilities.chrome( 
        'chromeOptions' => {
          "args" => [ "--start-maximized", "--otherthings" ]
        } 
      )
    
      $driver = Capybara::Selenium::Driver.new(app, {:browser => :chrome, :desired_capabilities => caps})
    end
    

    【讨论】:

    • 谢谢,但那是 chrome-only.. 你知道 Firefox 的例子吗?
    【解决方案2】:

    我终于明白了!!!这是gem "selenium-webdriver" 的工作示例。应该也适用于水豚。

    第一行是如果您想运行自定义二进制文件。在 --headless 命令行参数的情况下,支持从 firefox 版本 55 开始。不要忘记使 firefox-nightly 可用于 $PATH Env Var。

    Selenium::WebDriver::Firefox.path = "/home/user/bin/firefox-nightly"
    caps = Selenium::WebDriver::Remote::Capabilities.firefox(
      "moz:firefoxOptions" => {
        args: ["--headless"] # and other arguments... 
      }
    )
    driver = Selenium::WebDriver.for :firefox, desired_capabilities: caps
    

    # do stuff here .... driver.quit

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-24
      • 1970-01-01
      • 1970-01-01
      • 2013-03-24
      • 2012-09-12
      相关资源
      最近更新 更多