Don*_*ono 7 cucumber capybara ruby-on-rails-3
我的功能文件中有以下几行:
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
Run Code Online (Sandbox Code Playgroud)
我正在努力找到一种方法来测试网页是否在新窗口中打开.
目前我一直在我的步骤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
Run Code Online (Sandbox Code Playgroud)
但如果网页加载在同一页面上,这仍然会通过测试,如果网页加载到同一个窗口/选项卡上,我希望它失败.
有什么建议?
非常感谢
我看到你的测试没有断言.
我的方法是window_handles在链接上执行单击操作后测试数组的大小,因为在单击大小之前应该等于1并且在单击之后window_handles应该等于2.
assert page.driver.browser.window_handles.size == 2
Run Code Online (Sandbox Code Playgroud)
Imho,非常好,因为如果网页加载在同一个标签中,则大小为1,测试将失败.
| 归档时间: |
|
| 查看次数: |
3587 次 |
| 最近记录: |