gpt4 book ai didi

ruby - Cucumber 功能可以将常量传递给步骤定义吗?

转载 作者:太空宇宙 更新时间:2023-11-03 18:23:21 24 4
gpt4 key购买 nike

我有一个 XPATH 定期更改的站点的 XPATH 库。我写它是因为我可以简单地更改 .rb 库中的变量值,而不是遍历每个功能文件并更改它发送的 XPATH。

是否可以通过 .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 文件可能会更好。

关于ruby - Cucumber 功能可以将常量传递给步骤定义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14569636/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com