在 Capybara / Poltergeist 中打开新标签页
Opening a new tab in Capybara / Poltergeist
我正在尝试打开一个 link,方法是使用 capybara/poltergeist 单击它,它会在新选项卡中打开。
我似乎无法让它工作。
@session.find(<link>).click
似乎只停留在同一页面上,
也是如此
click_link "<link>"
@session.driver.window_handles
似乎只给我 1 window 无论我在做什么。
如何让 link 在新标签页中打开?
关于什么有效或无效,似乎有相当多的混淆(With Capybara, how do I switch to the new window for links with "_blank" targets?)。
希望有人已经解决了...我似乎无法理解它。
好的。通过更新到最新版本的 poltergeist (1.6.0),我们取得了一些进展。
但是现在我有两个 windows 但不知道如何在它们之间切换。
@session.windows
给我
[Window @handle="0", Window @handle="1"]
(稍作修改,因为有点搞笑)。
但是
@session.switch_to_window(1)
结果
NoMethodError: undefined method `handle' for "1":String
是的,从 2014 年 2 月 5 日开始,poltergeist v1.6,你可以这样做,因为...
@session.click_on "link_with_target _blank"
@session.switch_to_window(@session.windows.last)
#Do whatever you're doing
@session.current_window.close
@session.switch_to_window(@session.windows.first)
希望这能为某人解决问题...
我用
做了这个
page.switch_to_window(page.windows[0])
也许这对某人有用。
这就是我使用 Capybara 3.33 的方法:
new_window = window_opened_by do
click_link 'Go to external page'
end
within_window new_window do
assert_current_path 'http://external-page.com/?q=lala'
end
我正在尝试打开一个 link,方法是使用 capybara/poltergeist 单击它,它会在新选项卡中打开。
我似乎无法让它工作。
@session.find(<link>).click
似乎只停留在同一页面上,
也是如此click_link "<link>"
@session.driver.window_handles
似乎只给我 1 window 无论我在做什么。
如何让 link 在新标签页中打开?
关于什么有效或无效,似乎有相当多的混淆(With Capybara, how do I switch to the new window for links with "_blank" targets?)。
希望有人已经解决了...我似乎无法理解它。
好的。通过更新到最新版本的 poltergeist (1.6.0),我们取得了一些进展。
但是现在我有两个 windows 但不知道如何在它们之间切换。
@session.windows
给我
[Window @handle="0", Window @handle="1"] (稍作修改,因为有点搞笑)。
但是
@session.switch_to_window(1)
结果
NoMethodError: undefined method `handle' for "1":String
是的,从 2014 年 2 月 5 日开始,poltergeist v1.6,你可以这样做,因为...
@session.click_on "link_with_target _blank"
@session.switch_to_window(@session.windows.last)
#Do whatever you're doing
@session.current_window.close
@session.switch_to_window(@session.windows.first)
希望这能为某人解决问题...
我用
做了这个page.switch_to_window(page.windows[0])
也许这对某人有用。
这就是我使用 Capybara 3.33 的方法:
new_window = window_opened_by do
click_link 'Go to external page'
end
within_window new_window do
assert_current_path 'http://external-page.com/?q=lala'
end