我有一个黄瓜特征文件,如下所示,
鉴于我已登录控制台
而是写了4次when命令,我想知道我是否能以某种方式传递href的值并在when语句中调用它。
我有一个步骤定义,如下所示:
When(/^I navigate to the "(.*)" page$/) do |navigation_link|
@browser.link(:href => navigation_link).when_present.click
end
如果您需要更多信息,请与我们联系。
答案 0 :(得分:1)
有多种选择:
a)如果您需要测试可以独立导航到每个页面,可以使用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页 - >&gt;进行操作。第2页 - &gt; ...第X页 - &gt;第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页的步骤,并且在该步骤的定义中 - &gt;将变量中的url_paths(更好地放在单独的路径文件中并从那里加载) - &gt;导航到其他先决条件页面 - &gt;导航到最后一页。
这样您只能描述行为而不是文字导航点。