使用Chromedriver在Capybara下最大化窗口

3

我正在使用Capybara自动化截取一些屏幕截图。

我需要Chrome浏览器最大化运行,但似乎无法实现。

根据https://sites.google.com/a/chromium.org/chromedriver/capabilitieshttp://grokbase.com/t/gg/webdriver/134fs2vm3v/window-maximize-using-selenium-webdriver-in-ruby的内容,我认为以下代码应该可以实现:

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

但浏览器大小从未改变。

有人解决了这个问题吗?


我无法重现你的问题 - https://gist.github.com/abotalov/7309217。Google Chrome已正确调整大小。 - Andrei Botalov
4个回答

5
您的解决方案对我有效,只需要进行一个修复:
caps = Selenium::WebDriver::Remote::Capabilities.chrome("chromeOptions" => {"args" => [ "--start-maximized" ]})
    $driver = Capybara::Selenium::Driver.new(app, {:browser => :chrome, :desired_capabilities => caps})

您输入的指令是“start-maximized”,正确应该是“--start-maximized”。您正在使用Chrome Driver 2.8版本(http://chromedriver.storage.googleapis.com/index.html?path=2.8/),在Windows 7平台上进行操作。祝好,A。

1
如果您想在测试期间最大化而非启动时最大化,可以执行以下操作:
page.windows[0].maximize

0

这种方法是使用Java编程语言的。希望它能为您提供一些帮助:

driver.manage().window().maximize();

0

看起来我们需要使用'goog:chromeOptions'作为键,而不是只用chromeOptions,像这样:

caps = Selenium::WebDriver::Remote::Capabilities.chrome(
  'goog:chromeOptions' => {
    args: [
      'start-maximized',
    ]
  },
)

Capybara::Selenium::Driver.new(
  app,
  browser: :chrome,
  desired_capabilities: caps
)

来源:https://sites.google.com/a/chromium.org/chromedriver/capabilities

Chromedriver Desired Capabilities


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接