2012-01-10 104 views
6

我有我的特点文件中以下行:黄瓜+水豚测试,以确保打开一个新窗口

Given I have website "www.google.co.uk" 
When I click the website "www.google.co.uk" 
Then "www.google.co.uk" page is opened in a new window 

我努力寻找一种方法来测试该网页为在新窗口中肯定打开。

目前我已经在我的步DEF一直在使用这个:

Then /url "([^"]*)" is opened in new window/ do |url| 
    browser = page.driver.browser 
    current_id = browser.window_handle 
    tab_id = page.driver.find_window(url) 
    browser.switch_to.window tab_id 
    page.driver.browser.close 
    browser.switch_to.window current_id 
end 

但如果网页加载在同一页上,这仍然通过了测试,我希望它失败,如果网页加载在相同的窗口/选项卡。

有什么建议吗?

非常感谢

回答

6

我在您的测试中看不到任何断言。

我的做法是在链路上进行点击操作后测试window_handles数组的大小,因为点击大小之前应该等于1,后点击window_handles应该等于2

assert page.driver.browser.window_handles.size == 2 

恕我直言,不够好,因为如果网页加载在同一个标​​签中,大小将为1,并且测试将失败。

+0

对于那个伴侣的CHeers。那很完美。我刚刚开始与cucmber +水豚和敏捷tbh。但是再次感谢您的帮助,它也为我解决了其他问题。 – Dono 2012-01-11 10:38:36