我的测试的一部分包括一个表,用户可以在其中添加或删除行。
我无法控制表是否为空,因此我需要有条件if
来确定表是否为空。
我尝试检查表的第一行是否存在。如果是,请进行一些测试并继续,或者如果不是,则跳过该表并继续。
当然,我不能只尝试在第一行执行 cy.get,因为如果找不到该元素,测试就会失败。
相反,我尝试了这个:
cy.get('body').then(($body) => {
if ($body.find('firstRowElement').length > 0, {timeout: 60000}) {
cy.log("Im Inside")
cy.get('firstRowElement').then(($grid) => {
//Do all the tests I need if the first row exists..
)}
}
)}
Run Code Online (Sandbox Code Playgroud)
但这不起作用。
当表为空时,它仍然进入 if 语句。
然后,由于cy.get()
元素不存在,下一行测试失败。看来if
声明并没有发挥作用。
暂停
我需要超时,因为表需要几秒钟才能加载。
我尝试将超时移至内部,$body.find()
但它根本不等待并跳过所有内容,因为表尚未加载。
我也不想用cy.wait()
。
我认为超时和超时之间存在某种冲突.find()
。