Ruby& Selenium - 如何将参数传递给浏览器?

时间:2016-09-22 19:43:20

标签: ruby selenium firefox

我的搜索只显示了Java的答案 - thisthis

就我所知,硒宝石并不包括addCommandLineOptions,但确实有WebDriver::Remote::Capabilities

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

不幸的是the documentation特别无用

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

我终于想通了!以下是gem "selenium-webdriver"的工作示例。也应该为Capybara工作。

第一行是您要运行自定义二进制文件。如果是--headless命令行参数,支持从firefox版本55开始。不要忘记为$ PATH Env Var提供firefox-nightly。

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