将 watir 与 Rubymine 一起使用时,如何在第二台显示器上动态显示浏览器?

How can I dynamically display browser on 2nd monitor when using watir with Rubymine?

如何在双显示器设置中强制我的浏览器出现在 Ruby我的对面的显示器上?

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

我对 hooks.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

这是一个非常笨拙的解决方案。它总是出现在与 ruby​​mine 相同的监视器上然后移动。我必须对位置进行硬编码才能使用第二台显示器,因此它可能无法在不同的双显示器设置上工作。

问题:

  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,然后在另一个屏幕上使用浏览器。