(空手道)如何拦截XHR请求响应码?

(Karate) How to intercept the XHR request response code?

我正在第 3 方网站上测试登录功能。我有这个 url 例子。com/login 。当我将其复制并粘贴到浏览器 (chrome) 时,页面有时会加载,但有时不会加载(空白空白页面)。 问题是我必须 运行 此页面上的脚本才能单击其中一个元素(所有元素都嵌入在#shadow-root 中)。如果页面加载,没问题,脚本被成功评估。但是页面有时不会加载并且它 returns 响应 XHR 请求的 404,结果,我的 * eval(scrip("script") 步骤 returns “js eval failed ... ".

所以我找到了刷新页面的解决方案,为此,我正在考虑捕获 xhr 请求响应。如果状态码为404,则刷新页面。如果没有,请继续执行以下步骤。

现在,我认为这可能行得通,但我不知道如何实施 karate 的拦截 HTTP 请求。首先,这可行吗?

我查看了此处的文档,但无法理解这些示例。 https://github.com/karatelabs/karate/tree/master/karate-netty

同时,如果有另一种有条件地刷新页面的方法,我将非常乐意听到。预先感谢任何人。

首先,使用 JavaScript 你应该能够处理影子根:

并且上面的回答链接到在当前页面的上下文中执行 JS 的高级示例。我建议你对此做一些研究,尝试寻求了解 JS、DOM 和 HTML 的人的帮助——你应该找到一种方法来知道 XHR 是否已成功制作或不-例如基于页面上的某些元素是否已更改等

最后是拦截的方法: