2015-02-09 70 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]) 

也許這對某人有用。

相關問題