使用水豚或硒在不同的标签之间切换

时间:2014-07-14 20:45:54

标签: selenium rspec capybara

我希望在浏览器标签之间切换我正在测试的功能。但是我无法做到这一点。尝试过使用以下内容:

page.driver.browser.switch_to.window(page.driver.browser.window_handles.first)

我的想法是,当我在第二个标签上时,上面的代码应该将它带回第一个标签。但是这不起作用。

我还试图用这个关闭第二个标签:

page.execute_script "window.close();"

但是这确实做了什么,标签没有关闭,整个浏览器窗口看起来也没有做任何事情。

如果有其他人遇到这样的问题,您是如何找到解决方案的?我正在使用FireFox。

2 个答案:

答案 0 :(得分:7)

这是关闭新标签的方法。

def closeNewTabs
  window = page.driver.browser.window_handles

  if window.size > 1 
    page.driver.browser.switch_to.window(window.last)
    page.driver.browser.close
    page.driver.browser.switch_to.window(window.first)
    end
end

我可以在需要关闭新标签时随时调用此方法。

答案 1 :(得分:3)

我可以使用以下选项在标签之间进行切换

browser.switch_to.window browser.window_handles.last