[英]Can a Cucumber feature pass a constant to a step definition?
我有一个XPATH库,用于XPATH定期更改的站点。 我写的是因为我不是通过每个功能文件并更改它发送的XPATH,而是可以简单地更改我的.rb库中的变量值。
是否可以通过.feature文件将这些常量传递给步骤定义?
示例.feature功能文件:
Scenario: I want to test a button
When I go to url "blah"
And I click on the XPATH: XPATH_CONSTANT_VARIABLE
示例.rb步骤定义:
When /^I click on the XPATH: {I DON'T KNOW WHAT TO PUT HERE}$/ do |path|
@driver.find_element(:xpath, path).click
end
示例XPATH .rb库:
XPATH_CONSTANT_VARIABLE = "//*[@id="blahblah"]/div[1]/div/div[2]/div/div[1]/div/div[5]/div/div/div/div[2]"
您的方案非常紧迫。 我建议你让它们更具说明性,不要在场景中使用(或引用)XPathes。 读:
如果您真的希望保留原有场景,可以使用:
When /^I click on the XPATH: \w+$/ do |constant|
xpath = Kernel.const_get constant
@driver.find_element(:xpath, xpath).click
end
但是把所有常量放到全球空间就像你一样对我来说似乎很难看。 将它们放到YAML文件中可能更好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.