gpt4 book ai didi

javascript - 无法使用 Testcafe 拦截来自页面的传出 AJAX 请求

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:29:46 27 4
gpt4 key购买 nike

我正在尝试将 TestCafe 用于客户端 javascript 库,但我无法通过计数机制捕获测试页面加载时的任何传出 AJAX 请求。

我的尝试涉及使用 RequestLogger此库中的对象涉及使用正则表达式 /\.org/ 设置第一个参数,以捕获任何使用 .org 后缀的传出磁贴请求。我相信这是有道理的,因为所有传出请求都会发送到 openstreetmap.org,目的是获取 png map 图 block 。

我的测试核心如下所示:

import { RequestLogger } from "testcafe";

fixture`Hello World - Leaflet`.page`http://localhost:8080`;

const logger = RequestLogger(/org/, {
logRequestHeaders: true,
logResponseHeaders: true
});

test("Test if there's an outgoing network request...", async t => {
// Do something...
await t
.wait(5000)
.expect(logger.count(() => true))
.gt(0, "Must detect more than zero outgoing requests to openstreetmap");
});

为了捕获正确的 AJAX 请求传出计数,我是否遗漏了什么?

如果有帮助,我已经制作了一个包含此问题的存储库,其设置方式使人们无需配置即可尝试解决:

最佳答案

感谢您的详细描述。

您需要attach logger 到你的 test/fixture。您还可以在测试运行期间使用 t.addRequestHookst.removeRequestHooks 方法附加和分离 Hook 。

在测试代码中,我将 logger Hook 附加到 test:

import { RequestLogger } from "testcafe";

fixture`Hello World - Leaflet`.page`http://localhost:8080`;

const logger = RequestLogger(/org/);

test
.requestHooks(logger)
("Test if there's an outgoing network request...", async t => {
await t
.wait(5000)
.expect(logger.count(() => true))
.gt(0, "Must detect more than zero outgoing requests to openstreetmap");
});

关于javascript - 无法使用 Testcafe 拦截来自页面的传出 AJAX 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54359051/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com