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

问题描述:

我的搜索只打开了答案为Java - thisthisRuby&Selenium - 如何将参数传递给浏览器?

硒宝石不包括addCommandLineOptions据我所知道的,但它确实有WebDriver::Remote::Capabilities

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

不幸的是the documentation一直特别没用

您可以通过以下为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 
+0

谢谢你,但是这铬只..你知道Firefox的一个例子吗? – kehtyr

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

第一行是如果你想运行一个自定义的二进制文件。如果是--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