【问题标题】:Test the redirect page测试重定向页面
【发布时间】:2019-01-04 12:34:31
【问题描述】:

我正在使用 Testcafe 来测试我的应用程序。我有一个页面,上面有一个按钮。当我单击按钮时,页面将重定向到另一个页面,其中包含一堆图像以及发生服务器调用的位置。然后当呼叫被解决后,页面再次重定向到另一个页面。

我正在尝试测试这个只显示几秒钟的中间页面。

我想测试当页面 A 转到页面 B 时 URL 是否发生了变化。 我想测试显示页面和图片。

问题是,当我自动单击页面 A 上的按钮时,它会转到页面 B,然后在几秒钟后转到页面 C,然后测试执行并挂起。

我试过设置

await t.setPageLoadTimeout(0)
.wait(200000)
.eval(() => window.location.pathname)
.expect(window.location.pathname)
.contains('/gatheringDetails', 'The response was ok', {timeout: 500});

所以,我可以控制页面加载超时以帮助捕捉中间页面,但它不起作用。

有人可以帮忙吗?请。

【问题讨论】:

  • @A Gilani 请提供错误的堆栈跟踪。
  • 控制台或浏览器的控制台窗口都没有错误。我正在使用铬。
  • 酷。所需页面位于 iframe 或新浏览器会话/选项卡上?
  • Dirty hack:PageA完成后,只需使用导航到Page B的URL,然后添加线程睡眠。但是,这是一个临时解决方案。这个关于页面 B 可见性的断言是强制性的吗?
  • 好的。我认为最好的解决方案是在两个测试中分离这个场景。编写测试时的最佳实践是您必须只有一个断言。在您的情况下:测试 1:页面 A -> 操作 -> 页面 B -> 断言页面 B 所需的内容。测试 2:页面 A -> 操作 -> 页面 C -> 断言页面 C 所需的内容。

标签: reactjs testing automated-tests e2e-testing testcafe


【解决方案1】:

解决方案是使用请求钩子来监听页面 B 的请求并拦截响应。见Intercepting HTTP Requests

【讨论】:

  • 那是我走的路
【解决方案2】:

所以我使用了Intercepting HTTP Requests 并引入了响应延迟,这样我就可以在页面 B 上停留更长时间来测试其上的视觉效果。

【讨论】:

  • 干得好!但我有点好奇你是如何延迟回复的。
  • 在返回响应之前使用超时添加延迟
  • @AGilani - 您介意分享一下您是如何添加延迟的吗?
猜你喜欢
  • 2021-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-08
  • 2011-02-02
  • 1970-01-01
  • 2023-04-03
相关资源
最近更新 更多