如何在黄瓜中跟踪来自javascript的重定向?

Posted

技术标签:

【中文标题】如何在黄瓜中跟踪来自javascript的重定向?【英文标题】:How to follow redirect from javascript in cucumber? 【发布时间】:2010-09-02 06:45:05 【问题描述】:

我有一个按钮(不是提交按钮),它在提交另一个表单之前执行 ajax 调用。

我想做的是

Given I am viewing homepage
When I press "JustAButton"
Then I should be on "/users/home"

但是重定向发生得有点晚,考虑到页面仍在主页中,“Then”语句失败。我怎样才能等到 ajax 调用(单击按钮的结果)完成并且页面获得提交者??

有什么想法吗?

编辑:示例 javascript 代码

对于

<input type="button" id="btn_Send" value="Send"/>

javascript 是(请忽略语法错误,我想你会明白的)

document.ready()
$("#btn_Send").click(function()
   ajax.post('some url',<params>, callbackForSuccess);


function callbackForSuccess(result)
   $("#form1").submit();

【问题讨论】:

您是否使用支持 Javascript 的驱动程序运行 Cucumber 场景,例如硒?如果没有,当您的场景运行时,您页面上的 javascript/ajax 将不会执行。 @sidane,是的,我正在这样做。正常的 ajax 调用被正确处理。但是当有javascript表单提交时,它无法识别它们 好的。如果您在浏览器中手动测试,这种行为是否有效?您能否发布任何代码以更清楚地了解您在做什么? 我添加了一个编辑。它在浏览器中手动工作。谢谢 【参考方案1】:

正确 - 在 JavaScript 有机会加载另一个寻呼机之前,“我应该打开”立即执行断言。

您需要定义一个等待浏览器到达指定页面(或超时)的步骤。

【讨论】:

以上是关于如何在黄瓜中跟踪来自javascript的重定向?的主要内容,如果未能解决你的问题,请参考以下文章

如何删除 URL 中的参数并将其显示在地址栏中而不会导致 Javascript 中的重定向?

基于美国州的重定向页面,使用 Maxmind geoip2 JS

如何让 pycharm 确认从移动应用程序到移动浏览器的重定向已完成?

Keycloak:使用 nginx 后面的 javascript 适配器的重定向循环

具有重写功能的 IIS 反向代理无法处理来自我们代理到的服务器的重定向

如何在 Mixpanel 中跟踪匿名事件