在Capybara/Poltergeist打开新标签[英] Opening a new tab in Capybara / Poltergeist

问题描述

我试图通过使用Capybara/Poltergeist单击它来打开链接,该链条/Poltergeist在新标签中打开.

我似乎无法正常工作.

@session.find(<link>).click

似乎像

一样停留在同一页面上
click_link "<link>"

@session.driver.window_handles 

似乎只给我1个窗口.

如何获得该链接以在新标签中打开?

似乎对什么有效或没有la是相当多的混乱( capybara,如何切换到新窗口,以使用" _blank"目标链接?).

希望有人已经解决了...似乎无法抓住我的头.

好的.通过更新最新版本的Poltergeist(1.6.0),我们取得了一些进展.

现在我有两个窗口,但不知道如何在它们之间切换.

@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 

本文地址:https://www.itbaoku.cn/post/1739888.html