我的功能文件中有以下几行:
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
但是如果网页加载在同一页面上,这仍然会通过测试,如果网页加载在同一个窗口/选项卡上,我希望它失败。
有什么建议吗?
非常感谢
答案 0 :(得分:7)
我的测试中没有断言。
我的方法是在对链接执行点击操作后测试window_handles
数组的大小,因为在点击大小之前应该等于1并且在点击window_handles
之后应该等于2.
assert page.driver.browser.window_handles.size == 2
Imho,很好,因为如果网页加载在同一个标签中,则大小为1,测试将失败。