Poltergeist-phantomjs - 切换到新弹出的窗口

时间:2015-11-05 21:53:09

标签: ui-automation poltergeist headless-browser

测试环境:水豚,恶作剧,幻影。

当我单击测试用例中的链接时,会打开一个新窗口。我能够切换到新窗口并使用selenium驱动程序验证文本。但是,我无法用poltergeist切换到新窗口。我尝试了以下方法切换到新窗口,但没有一个工作。 我想知道一个新的浏览器是否完全打开并且看起来像是。

main = page.driver.browser.window_handles.first
        puts main (gives 0)
        popup = page.driver.browser.window_handles.last
        puts popup (gives 1) 

   1.  within_window(->{ page.title == '2015-11-5.pdf' }) { assert_text(facility_name) }
   2.  page.switch_to_window(window=popup)
   3.  page.switch_to_window(page.driver.browser.window_handles.last)
   4.  page.driver.browser.switch_to().window(page.driver.browser.window_handles.last)

有人可以提供任何输入吗?谢谢!

2 个答案:

答案 0 :(得分:3)

我使用了以下内容,弹出窗口生成,控件切换到它。

page.switch_to_window(page.window_opened_by{click_link('Generate Report')})

新窗口中嵌入了pdf。当我使用selenium驱动程序时,我能够读取和验证文档的内容。对于恶作剧者,我无法阅读pdf。你能给我一些关于如何进行的指示吗?

答案 1 :(得分:2)

Capybara有许多交叉驱动程序方法来处理这个问题,而无需使用特定于驱动程序的方法。

popup = page.window_opened_by {
  click_link('whatever link opens the new window')
}
within_window(popup) do
 # perform actions in the new window
end