我正在使用在加载数据时间方面非常不稳定的应用程序。我已经将我的 waitFor 超时设置为 15 秒,我不想再增加它了。我的测试是在 CI 中运行的,而且我经常不得不重新运行所有的东西,因为 ONE 元素没有及时加载。此外,我不想使用某些bail技术或重试整个测试。我的想法是等待元素,如果.loader页面上仍然存在带有定位器的元素,我想重试等待。所以我正在寻找实现这一点的最佳方法(也许是承诺?)function waitWithRetry(elementLocator, retryCount) { while (retryCount > 0) { try { $(`${elementLocator}`).waitForDisplayed(); } catch (e) { if ($('.loader').isDisplayed()) { retryCount--; } else { throw new Error(e); } } }}
1 回答
沧海一幻觉
TA贡献1824条经验 获得超5个赞
下面的代码将重试,直到加载器元素可用,并且retryCount一旦元素不可见,就会重试。
function waitWithRetry(elementLocator, retryCount) {
while (retryCount > 0) {
try {
$(`${elementLocator}`).waitForDisplayed();
} catch (e) {
if ($('.loader').isDisplayed() && retryCount === 1) {
throw new Error(e);
}
retryCount--;
}
}
}
添加回答
举报
0/150
提交
取消