AUT 在顶部导航栏上有链接。在正常使用过程中,每个链接都会在不同的浏览器中打开一个相关的应用程序。
是否可以在新应用程序上做一个简单的页面标题断言,然后返回 AUT 并单击下一个链接?等等每个链接?
对于测试,我认为链接目标是否在新浏览器、新选项卡或同一选项卡中打开并不重要。只要我可以在 AUT 和“其他”应用程序之间来回跳转。
AUT 在顶部导航栏上有链接。在正常使用过程中,每个链接都会在不同的浏览器中打开一个相关的应用程序。
是否可以在新应用程序上做一个简单的页面标题断言,然后返回 AUT 并单击下一个链接?等等每个链接?
对于测试,我认为链接目标是否在新浏览器、新选项卡或同一选项卡中打开并不重要。只要我可以在 AUT 和“其他”应用程序之间来回跳转。
如果没有示例 HTML,这有点摸不着头脑。但是——假设有一个独特的属性可以挂钩——你可以从导航 div 中收集链接并遍历每个链接。这是一个简单的、人为的示例(链接不会产生新的浏览器/选项卡):
b = Watir::Browser.new
b.goto("http://www.iana.org/domains")
nav_link_hrefs = b.div(:class, "navigation").links.collect { |link| link.href}
nav_link_hrefs.each do |href|
next if href == "http://www.iana.org/domains" # skip self-referential link
b.link(:href => href).click
b.back
end
在做一个“简单的页面标题断言”方面,我不确定你是如何提前知道页面标题的。但我建议查看MiniTest或rspec以获取断言库。
最后——如果您的用例需要窗口切换——请查看 watir-webdriver窗口切换文档。
我找到了答案。这是部分代码:
@browser.goto URL
current_url = @browser.url
new_window_url = @browser.link(:text, "Other site").href
@browser.goto(new_window_url)
# test the other site
assert(@browser.text.include?("This is the other site"))
@browser.goto(current_url) # back to the first site
# repeat for all the other navigation links