2015-02-09 66 views
6

我试图打开一个链接,通过点击它使用在新选项卡中打开的水豚/ poltergeist。在水豚/ Poltergeist中打开一个新选项卡

我似乎无法得到它的工作。

@session.find(<link>).click 

似乎只是停留在同一页上一样,

click_link "<link>" 

@session.driver.window_handles 

似乎只给我1个窗口无论我在做什么。

如何获得在新选项卡中打开的链接?

似乎是一个相当混乱的什么工作或不拉(With Capybara, how do I switch to the new window for links with "_blank" targets?)。

希望有人解决了这个问题...似乎无法摆脱困境。

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

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

@session.windows 

给我

[窗口@手柄= “0”,窗口@手柄= “1”] (稍加修改,因为它是要有点滑稽)。

@session.switch_to_window(1) 

结果

NoMethodError: undefined method `handle' for "1":String 

回答

6

权,为2014年2月5日和骚灵的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) 

希望能为某人解决问题...

+1

这是正确的。 'switch_to_window'需要一个Window对象作为参数,而不是索引。这就是为什么例如'windows.last'起作用。你也可以做'@ session.switch_to_window(@ session.windows [1])'。你应该接受你的回答是正确的! – henrebotha 2015-04-14 14:22:45

1

我是这么做的

page.switch_to_window(page.windows[0]) 

也许这对某人有用。

相关问题