我的Behat功能文件是
Scenario: verify docs
Given I'm on "/docs"
Then I should see "link1" link with href of "https://server1.xyz.com/link1"
Then I should see "link2" link with href of "https://server1.xyz.com/link2"
Then I should see "link3" link with href of "https://server1.xyz.com/link3"
Then I should see "link4" link with href of "https://server1.xyz.com/link4"
Then I should see "link5" link with href of "https://server1.xyz.com/link5"
链接的预期值会根据个人资料发生变化。说,如果我使用server1配置文件运行,那么我期望link1的链接是“”https://server1.xyz.com/link1“如果我想使用server2配置文件运行,那么我期望的link5的链接是”“{{ 3}}”。
所以可以使用参数文件来说明 例如
profile: server1
linkvar1: "https://server1.xyz.com/link1"
linkvar2: "https://server1.xyz.com/link2"
profile: server2
linkvar1: "https://server2.xyz.com/link1"
linkvar2: "https://server2.xyz.com/link2"
并在我的功能文件中
Given I'm on "/docs"
Then I should see "link1" link with href of "%linkvar1%"
Then I should see "link2" link with href of "%linkvar2%"
或者建议我如何以更好的方式实现。
答案 0 :(得分:0)
这里有多个选项:
1)仅通过页面检查链接(没有基本URL) 您可以采取以下步骤:
I should see link that contains "link1"
在此步骤中,您将获得href属性并检查参数。
2)获取每个链接的选择器并检查您需要的内容(元素存在/可见)。您可以使用以下步骤:
I should see an "css_selector" element
the "css_selector" element should not be visible
当然,选择器应该基于href,例如:
[href*='link1']
[href$='link1']

在此处查看更多css选择器:w3schools
3)如果您有不同数量的链接,那么您可以在behat.yml中为每个配置文件添加一个参数,读取该参数并在控制结构中使用它(if-else,switch)。您可以定义一个步骤:
the navigation menu should be displayed
或
the section_name section should be displayed
您可以为每个配置文件定义参数,但考虑尽可能高效地使用它们,您可能不希望behat.yml充满参数。