在硒中调整大小后,如何确保窗口大小始终重置?

时间:2013-10-25 18:29:53

标签: ruby selenium selenium-webdriver capybara

我有一个硒测试,我需要用一定大小的窗口来完成。我已经弄清楚如何设置窗口大小,但我需要确保它在完成后总是被重置。我的问题是双重的。

  1. 如何将窗口重置为默认大小。
  2. 即使测试失败,如何确保重置ALWAYS仍然运行。我可以使用“救援”吗?

    def test_nav_mobile
       page.visit "/foo/bar"
       page.driver.browser.manage.window.resize_to(500,500)
       #Perform the test...
       #Resize here?
    end
    

1 个答案:

答案 0 :(得分:3)

您可以执行以下操作:

def test_nav_mobile
  # Store the original height/width
  orig_height = page.driver.browser.manage.window.size.height
  orig_width = page.driver.browser.manage.window.size.width

  # Do stuff at smaller browser size
  page.visit "/foo/bar"
  page.driver.browser.manage.window.resize_to(500,500)
  #Perform the test...

ensure
  # Resize browser back to original size
  page.driver.browser.manage.window.resize_to(orig_height,orig_width)
end

几点说明:

  1. 您希望使用ensure确保始终调整原始大小 - 即是否存在异常或没有异常。使用rescue意味着只有在出现问题时才能运行该行。
  2. 我认为没有任何默认大小,因此您可以在测试开始时存储尺寸,然后在结束时重新调整尺寸。