3

我找到了一个代码:page.driver.browser.switch_to.window,它显然正在切换到已经打开的窗口。我们如何使用 page.driver.browser 对象打开一个新窗口?

谢谢

4

2 回答 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”目标的链接的新窗口?

于 2017-08-01T21:39:43.467 回答
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
于 2012-10-24T21:38:05.883 回答