多种选项做到这一点:
a)如果你需要测试,你可以浏览到每个independtly页面,你可以使用一个Scenario Outline
,如:
Scenario Outline: Test navigation
Given I am logged in to the console
When I navigate to the "<href>" page
Examples:
|href |
|<actual_url1>|
|.... |
|<actual_url4>|
在这种情况下,您的步骤不需要修改,并且应该按原样运行。 b)如果需要以相关方式导航到页面,即到达页面4需要您遵循页面1->页面2 - > ...页面X - >页面4,则可以使用table
像:
Scenario: Test navigation
Given I am logged in to the console
When I navigate through the following pages:
|<actual_url1>|
|.... |
|<actual_url4>|
然后在你的步骤定义:
When(/^i navigate through the following pages:$/) do |table|
table.raw.each do |navigation_link|
@browser.link(:href => navigation_link.join).when_present.click
end
end
(了解更多关于表&概述这里:http://cukes.info/step-definitions.html)
虽然,如果您只是想检查是否可以导航到第4页,我不会建议使用它们中的任何一个。我宁愿创建一个步骤,只导航到第4页,并在该步骤的定义中 - >在变量中获取url_paths(最好在单独的路径文件中加载并从那里加载) - >导航到其他先决条件页面 - >导航到最后一页。
这样你只会描述行为而不是文字导航点。
来源
2014-01-15 14:49:31
Sam
我尝试第二种方法,但它抛出一个错误如下场景: 鉴于我登录到控制台 当我通过以下页面导航: | /在iTunes上/#/集线器| |#/菜单/集线器/ ReportsAnalytics | |#/ Menu/Hub/ReportsAnalytics/Reports | |/AirWatch /#/ Report/List/AllReports | 预计[String,Regexp]之一,得到[ AirWatch /#/ Hub>“]:Array(TypeError)./features/step_definitions/Report.rb:45:in'block(2 levels)in
对不起,是的,你会得到他们作为数组。只要将它们转换为字符串为:href => navigation_link.join(更新我的答案与之相同) – Sam
谢谢,它工作得很好。 –