如何使用Selenium WebDriver在Capybara中打开一个新窗口?

3
我发现了这样的代码:page.driver.browser.switch_to.window,它显然是用来切换到已经打开的窗口的。那么我们如何使用page.driver.browser对象来打开一个新窗口呢?谢谢!
2个回答

9

我在这里结束,即使这是一个旧帖子,对于某些人可能会有用,你可以像这样创建和使用窗口:

new_window = open_new_window
switch_to_window new_window

或者:

within_window new_window do
end

您还可以通过Windows对象查找新的窗口。

open_new_window
new_window = windows.last

参考文献:

http://www.rubydoc.info/github/jnicklas/capybara/Capybara/Session:open_new_window

http://www.rubydoc.info/github/jnicklas/capybara/Capybara%2FSession%3Aswitch_to_window

https://github.com/teamcapybara/capybara#working-with-windows

如何使用Capybara切换到新窗口打开_blank标签的链接?


这应该是正确的答案!它有效且更简单。 - CamiloVA

2
我最终使用JavaScript来实现这个功能:
When /^I open a new window for "([^"]*)"$/ do |url|
str =
<<END_TAG
     window.open("#{url}", "window_name", "height=800,width=1000");
END_TAG
  page.execute_script(str)
end

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