我在使用Capybara时一直试图访问一个新窗口(井标签),但一直在
Selenium::WebDriver::Error::NoSuchWindowError: no such window
到目前为止,我的流程和理解是
@session_1 = Capybara::Session.new(:chrome)
@session_1.visit("www.google.com")
所以在这个阶段我打开谷歌。现在假设我想在新的标签/窗口中打开谷歌
@session_1.open_new_window
这将打开一个新窗口,并访问我可以执行的那些窗口
@session_1.windows
返回一个windows数组
[#<Window @handle="CDwindow-09B6E81E-7874-4686-86A9-8BFB917E0F4F">,
#<Window @handle="CDwindow-5DA14173-8D63-422A-BF98-39B7C2A5D2DB">]
因此,作为测试,我想检查最新的Windows网址是否匹配about:blank
@new_tab = @session_1.windows.last
# @new_tab = #<Window @handle="CDwindow-5DA14173-8D63-422A-BF98-39B7C2A5D2DB">
page.within_window @new_tab do
expect(current_url).to eq('about:blank')
end
我在这里得到错误。
我想知道的是
1)如何选择新标签
2)如何在新标签页中打开新网址
答案 0 :(得分:2)
所以我找到了答案,事实证明它比我尝试的要简单得多,信用转到Keiran Betteley和this帖子
@session_1.open_new_window
@session_1.switch_to_window(@session_1.windows.last)
@session_1.visit("url")
答案 1 :(得分:1)
Capybara有许多处理窗口的方法,open_new_window返回它打开的窗口,因此无需查看所有窗口的列表
Monoid