当前位置: 首页 > 知识库问答 >
问题:

如何防止在使用Cucumber Scenario Outline时刷新页面?

尤夕
2023-03-14

我使用Serenity(修昔底德)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       |

我成功验证了第一个选项卡,但无法验证其他选项卡,因为页面在第一次迭代后重新加载。如何保持在同一页面上?在我的情况下是可管理的吗?

共有2个答案

皮献
2023-03-14

我以前使用夹具不正确。我已经通过设置全局钩子解决了这个问题。

宇文俊风
2023-03-14

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

写这个的更好方法是命名选项卡,例如foo-tabs然后写

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)

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

 类似资料:
  • 在我的项目中,我有两页,第一页用于输入数据,第二页用于向用户显示数据。刷新结果页时,数据将被复制。我试图解决这个问题,但我不熟悉PRG模式。如果用户刷新结果页,我希望防止重复。

  • 问题内容: 我有一个简单的表单,可将​​文本提交到SQL表。问题在于,用户提交文本后,他们可以刷新页面,并且无需再次填写表单即可再次提交数据。提交文本后,我可以将用户重定向到另一个页面,但是我希望用户停留在同一页面上。 我记得读过一些有关为每个用户提供唯一的会话ID并将其与另一个值进行比较的信息,这些值解决了我遇到的问题,但我忘记了它在哪里。 问题答案: 使用发布/重定向/获取模式。 在我的网站上

  • 我使用servlet和jsp制作了一个购物车,但我面临一个问题,即每当我刷新页面时,购物车项目的数量就会增加。实际上,我所做的是在url中传递特定的,只要用户在某些产品上单击add to cart按钮,就像,然后根据id从数据库中提取产品并将其添加到购物车中,但是当我刷新这个url AddToCart?id=3时,这个页面中的整个过程再次运行,每次刷新时都会增加产品数量。我该如何解决这个问题。有什

  • 问题内容: 我有一个简单的hibernate查询,例如: 没什么花哨的,但是它在一个相当大的事务中被多次调用(持续一秒钟,可能会加载数十个或数百个实体)。Profiler显示很多时间花在: 换句话说-在运行实际查询之前刷新会更改。 我能以某种方式完全阻止Hibernate进行刷新吗? 如果没有,我该怎么做才能使其更快? 问题答案: 默认情况下,hibernate在会话期间发出查询之前刷新(Flus

  • 我的网站路由工作正常,但当我点击刷新按钮时,问题就出现了。 在基本路线上,例如页面或组件样式保持不变,但当我刷新子路由时,例如此组件的所有样式都将丢失。 对于如何解决此问题的任何帮助,我们将不胜感激

  • 我保证,我已经谷歌了这一切。 我有一个Spring MVC 4应用程序,它使用Thymeleaf收集表单数据并将其放入数据库。效果很好,只是我希望我的应用程序在用户点击提交按钮后将其留在表单页面上,以便他们可以继续编辑。 每次单击提交时,都会调用控制器并返回视图,从而刷新页面。我想消除刷新,并添加一个警报以确认保存。 所以我开始将表单提交转换为AJAX,并意识到这将违背使用Thymeleaf的目的

  • 问题内容: 在表单中使用按钮时出现问题。我希望该按钮调用功能。它确实可以,但是刷新页面的结果令人讨厌。 我的简单代码是这样的 单击该按钮后,该函数将在页面刷新时被调用,这会重置所有我先前的请求,这会影响到当前页面,这是先前请求的结果。 我应该怎么做才能防止页面刷新? 问题答案: 让我们返回false。这将解决它。

  • 问题内容: 在ajax调用后,我无法停止刷新页面。我已经尝试通过放置e.preventDefault(); 并返回false;同样,但我的页面再次刷新。 我不知道代码或某些问题是什么。请帮助我在ajax调用后停止刷新页面。解决这个问题将对我有很大的帮助。提前致谢。 这是我的代码: 问题答案: ID是否指向表单?如果是,则需要侦听Submit事件而不是单击click。如果您确实需要监听click事件