Java 如何防止在使用场景大纲时刷新页面?

Java 如何防止在使用场景大纲时刷新页面?,java,cucumber,thucydides,serenity-bdd,Java,Cucumber,Thucydides,Serenity Bdd,我使用Serenity Thucydides+Cucumber在Chrome浏览器中测试web应用程序。 我想验证页面上是否存在某些元素 Scenario Outline: Should see six tabs on the page When I am on MainPage page Then I should see the following <tab> as tab: Examples: | tab | |

我使用Serenity Thucydides+Cucumber在Chrome浏览器中测试web应用程序。 我想验证页面上是否存在某些元素

Scenario Outline: Should see six tabs on the page
    When I am on MainPage page
    Then I should see the following <tab> as tab:
    Examples:
      | tab         |
      | Tab_1       |
      | Tab_2       |
      | Tab_3       |
      | Tab_4       |
我成功验证了第一个选项卡,但无法验证其他选项卡,因为页面在第一次迭代后重新加载。
如何保持一致?在我的例子中它是可管理的吗?

场景概述为每个示例元素创建一个单独的场景。您需要一个用于查找选项卡的场景

更好的编写方法是命名选项卡,例如foo选项卡,然后编写

Scenario: See foo tabs on main page
  When I am on the main page
  Then I should see foo tabs
在步骤定义中,进行编程以查找选项卡,例如

Then "should see foo tabs" do
  foo_tabs.each do |tab|
    expect(page).to have # do something with the tab here
  end
end
上面是ruby的代码,但您应该能够适应java


现在您将有一个场景,而且如果您添加/删除选项卡,您将不必更改您的功能。

我以前使用过。
我通过预先设置全局钩子解决了这个问题。

是的,我知道如何检查单独的元素,我希望功能文件和测试报告中的代码看起来更可读,所以我在场景大纲中使用表数据。我的问题是如何防止页面重新加载。我看到在每个步骤之后,用@DefaultUrl设置的页面都是打开的。所以我应该设法管理它?我已经向您展示了如何使您的功能更具可读性。您无法绕开场景大纲的工作方式,它们为示例组中的每件事创建了一个单独的场景。如果您继续使用大纲,您将无法解决您的问题。我感谢您的评论。但是场景大纲现在对我来说很好。@Alex我知道这很旧,但你是如何解决的?如果你不想离开页面,你考虑过用表格代替大纲吗?我想你需要用场景和表格代替场景大纲。