首先,如果您使用 Ruby 进行步骤定义,我认为您的“何时”前面不应该有 @ 符号。这可能会给您带来问题(我不知道。)如果您不使用 Ruby,那么了解您在步骤定义中使用的语言会很有帮助。
我可以告诉你我对引号中的文件路径做了什么:
When I upload invoice "C:\Ruby193\automation\myfile.txt"
然后我使用了这段代码:
When /^I upload invoice "(.*)"$/ do |filename|
@upload_invoice_page = UploadInvoicePage.new(@test_env)
@upload_invoice_page.upload_file(filename, 'BIRD, INC.')
end
按照该示例,在 Ruby 中,我将为您的步骤尝试此代码:
When /^ can see the "(.*)" page$/
您的代码可能看起来像 Java,所以它可能看起来像:
@When("^I can see the \"(.*)\" page$")
您可以在其中放置一个更复杂的 Regex,但由于它是 Gherkin 步骤,因此您并不需要它。看起来目前您正在尝试获取不是双引号的任何内容。您不需要这样做,因为 Regex 已经在寻找开放式和关闭式报价。
请记住,您也可以完全摆脱引号:
Then I can see the /relative-url-path page
@When("^I can see the (.*) page$")
仅当您觉得它更易于阅读时才保留引号。有关正则表达式的更多信息
要仅匹配数字,您将执行以下操作:
Then I can see the 123456
@Then("^I can see the (\d*)$")
我发现 Richard Lawrence 的Cucumber Regex Cheatsheet非常有帮助。你会在那里找到你需要的大部分模式。如果您需要更复杂的模式,您可以考虑是否最好在步骤定义代码中进行评估。