gpt4 book ai didi

webdriver-io - 如何等待 WEBdriver.io 的 Ajax 调用完成

转载 作者:行者123 更新时间:2023-12-03 14:57:45 34 4
gpt4 key购买 nike

我想弄清楚如何让 webdriver.io 在单击按钮后等待所有 ajax 请求完成。

不幸的是, document.readyState 总是 = 'complete' ,并且该网页没有任何“独特”之处,只是其中的数据略有不同。

有没有其他方法可以测试页面中的javascript功能是否完整..?

    await this.browser.waitUntil(function () {
return this.execute(function () {
if (document.readyState === 'complete')
return true;
})
});

最佳答案

在 WDIO 5.x 及更高版本中,引入了一个名为“拦截服务”的新第三方插件来帮助解决这个问题。
您需要将服务包 wdio-intercept-service 安装为 dev 依赖项并在 wdio.config.js 中声明为 services: ['intercept']您可以设置拦截器来捕获 xhr 请求,如下所示。

browser.setupInterceptor();  // start capturing xhr requests
设置拦截器后,您可以声明对请求的一些期望,并使用它们的索引(期望声明的顺序)获取这些请求。
browser.expectRequest('GET', '/api/foo', 200); // expect GET request to /api/foo with 200 statusCode
var request = browser.getRequest(0);
assert.equal(request.method, 'GET');
assert.equal(request.response.headers['content-length'], '42');
你可以在他们的 Github 页面上找到更多信息: Intercept Service

关于webdriver-io - 如何等待 WEBdriver.io 的 Ajax 调用完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48017478/

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