gpt4 book ai didi

testing - testcafe中有没有办法获取特定页面元素的加载时间?

转载 作者:行者123 更新时间:2023-11-28 21:15:38 25 4
gpt4 key购买 nike

假设我导航到一个页面,我希望某些页面元素在特定时间段内显示。如何获取加载特定页面元素所需的时间?

我已经尝试在命令行参数中使用带有选择器超时的 visibilityCheck 选项。我也尝试过超时异常。这些都没有按预期工作。

try {
await loginPage.signInToPortal()
await loginPage.login( 'xxxx','yyyy')
await Selector('div').withText('Something').with({ visibilityCheck: true });
} catch (e) {
logger.error("Testcase C111111 failed...")
throw(e)
}

try {
await loginPage.signInToPortal()
await loginPage.login( 'xxxx','yyyy')
const appLabel = Selector('div').withText('Something').with({ visibilityCheck: true });
await t.expect(appLabel.innerText).contains('Something', { timeout: 5000 });
} catch (e) {
logger.error("Testcase C111111 failed...")
throw(e)
}

最佳答案

据我了解,您想在一段时间后检查该元素是否存在以及是否有一些内部文本。如果时间过去了,但元素不存在或没有一些文本,则您希望测试失败。

您的方法总体上是正确的,但我认为您不需要 visibilityCheck选项在这里。

由于我不知道您的项目具体是如何工作的,所以我创建了一个示例。让我展示一下并解释一下how timeouts work在 TestCafe 中。

页面:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script>

setTimeout(() => {
var div = document.createElement('div');

document.body.appendChild(div);

setTimeout(() => {
div.innerHTML = 'test';
}, 6000);
}, 6000);

</script>
</body>
</html>

测试代码:

import { Selector } from 'testcafe';

fixture `fixture`
.page `../pages/index.html`;

const selector = Selector('div', { timeout: 4000 });

test(`Recreate invisible element and click`, async t => {
await t.expect(selector.innerText).eql('test', 'error message', { timeout: 13000 });
});

在这里,我有一个 div元素,仅在 6s 后出现。在此期间,断言检查元素是否存在。执行此代码:Selector('div', { timeout: 4000 }); .由于 4s 小于 6s,测试失败,因为在超时期间找不到元素。

但是,如果我将超时更改为 7 秒,Selector('div', { timeout: 7000}); TestCafe 找到 div 并开始等待,直到 div 具有正确的内部文本。

断言超时现在是 13 秒。 13s大于6s(一个元素出现所需的时间)+6s(一个元素出现正确文本所需的时间),所以断言会成功。但是,如果我将断言超时从 13 秒更改为 11 秒,它将失败。

另请参阅:Built-In Wait Mechanisms

关于testing - testcafe中有没有办法获取特定页面元素的加载时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58667119/

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