gpt4 book ai didi

javascript - 除非存在文本,否则 Cypress 刷新页面?

转载 作者:行者123 更新时间:2023-12-04 03:25:45 24 4
gpt4 key购买 nike

我正在尝试编写一个测试,但我已经到了需要等待一些文本变得可见的地步。
基本上到目前为止,我已经上传了一个文件,然后导航到另一个页面,这个新页面只是说“正在处理..”,当文件完成检查时,它会说“成功!”
问题是这个页面不是每 x 秒调用一次 API 来更新文本,它只是在页面加载时执行一次,所以我想检查页面是否显示“正在处理..”再次调用 cy.reload() 检查,调用 cy.wait(1000) 重新加载并再次检查等,直到页面显示“成功!”。
我的问题是如何检查文本是否存在而不是断言并且未通过测试?

最佳答案

这已经被问过几次了,简短的回答是使用 jQuery,例如

cy.visit(...)
cy.wait(1000) // in case the page is initially slow to load

const text = Cypress.$('div').text();
if (text.trim().startsWith('Processing') {
cy.wait(1000)
cy.reload()
}
这会让您重新加载一次,但我想您想重复该操作直到“成功...”,对于这种情况,递归似乎是在正确的 DOM 出现之前重复内容的唯一方法。
function waitForText(attempt = 0) {

if (attempt > 100) { // choose cutoff point, must have this limiter
throw 'Failed'
}

cy.wait(1000);
const text = Cypress.$('div').text();
if (text.trim().startsWith('Processing') {
cy.reload();
waitForText(attempt + 1)
}
}

cy.visit(...)
waitForText()

关于javascript - 除非存在文本,否则 Cypress 刷新页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67620225/

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