Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法使用Testcafe从页面截获传出AJAX请求_Javascript_Request_Automated Tests_E2e Testing_Testcafe - Fatal编程技术网

Javascript 无法使用Testcafe从页面截获传出AJAX请求

Javascript 无法使用Testcafe从页面截获传出AJAX请求,javascript,request,automated-tests,e2e-testing,testcafe,Javascript,Request,Automated Tests,E2e Testing,Testcafe,我试图将TestCafe用于客户端javascript库,但无法通过计数机制捕获测试页面加载时的任何传出AJAX请求 我尝试使用此库中的对象,包括使用regex/\.org/设置第一个参数,以捕获任何使用.org后缀的传出平铺请求。我相信这是有道理的,因为所有发出的请求都会转到openstreetmap.org,目的是获取png地图块 我的测试的核心如下所示: import { RequestLogger } from "testcafe"; fixture`Hello World - Lea

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

我尝试使用此库中的对象,包括使用regex
/\.org/
设置第一个参数,以捕获任何使用.org后缀的传出平铺请求。我相信这是有道理的,因为所有发出的请求都会转到openstreetmap.org,目的是获取png地图块

我的测试的核心如下所示:

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请求传出计数,我是否缺少一些东西


如果有帮助的话,我已经制作了一个包含此问题的回购协议,其设置方式是人们可以尝试在不进行配置的情况下解决此问题:

谢谢您的详细描述

您需要将
记录器
连接到
测试
/
夹具
。您还可以在测试运行期间使用
t.addRequestHooks
t.removeRequestHooks
方法附加和分离挂钩

在测试代码中,我将
记录器
挂钩连接到
测试

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");
    });