我怎么能动态地显示浏览器上的第二个显示器时,使用watir与红宝石



如何在双监视器设置中强制我的浏览器出现在Rubymine对面的监视器上?

我正在尝试测试/调试功能场景。我的工具集是RubyMine、Ruby、watir、page-object-gem和Cucumber。我有一个双显示器设置,但浏览器总是出现在与Rubymine相同的显示器上。

我对我的钩子做了一些改变。Rb文件:

Before do
  @browser = Watir::Browser.new :firefox
  @browser.window.move_to(1985,24)
  @browser.window.maximize 
  puts " Browser Position " + @browser.window.position.to_s
end
After do
  @browser.close
end

这是一个非常笨拙的解决方案。它总是随着红宝石的移动出现在同一个监视器上。我不得不硬编码位置来使用第二个显示器,所以它可能不会在不同的双显示器设置上工作。

问题:

  1. 如果有一个配置项,它是什么?
  2. 你能建议一种方法来实现以下,它会去哪里?

    如果(dual_monitor)然后browser.move.window_to (other_monitor)

因为我在家里和办公室写测试,我在两个地方都有两台显示器,它们的大小不同,我只使用一个环境变量:

if ENV['MOVE_BROWSER'] =~ /home/i
  browser.window.move_to(2080,0)
elsif ENV['MOVE_BROWSER'] =~ /office/i
  browser.window.move_to(-2562, -600)   
end
screen_width = browser.execute_script("return screen.width;")
screen_height = browser.execute_script("return screen.height;")
browser.driver.manage.window.resize_to(screen_width,screen_height)

这也确保了其他测试人员不受我的偏好的影响。我在最大的可用屏幕上使用Sublime,然后在另一个屏幕上使用浏览器。

最新更新