Javascript 断开if/else块,无异常Cypress
我需要一种方法来运行下面的代码段成功与任何异常Javascript 断开if/else块,无异常Cypress,javascript,jquery,automation,cypress,Javascript,Jquery,Automation,Cypress,我需要一种方法来运行下面的代码段成功与任何异常 it("Visiting Google",function(){ var webUrl = 'https://html5test.com/' cy.visit(webUrl) var iterator = 1 while(iterator < 5) { const $select_element = cy.get('h1 > em') if($s
it("Visiting Google",function(){
var webUrl = 'https://html5test.com/'
cy.visit(webUrl)
var iterator = 1
while(iterator < 5)
{
const $select_element = cy.get('h1 > em')
if($select_element.contains('abcd'))
{
cy.log("string found")
}
else
{
cy.log('string not found')
break
}
iterator += 1
}
})
it(“访问谷歌”,函数(){
var webUrl='1〕https://html5test.com/'
cy.visit(webUrl)
变量迭代器=1
while(迭代器<5)
{
const$select_element=cy.get('h1>em')
if($select_element.contains('abcd'))
{
cy.log(“找到字符串”)
}
其他的
{
cy.log('未找到字符串')
打破
}
迭代器+=1
}
})
我需要这个测试用例在while循环中运行,直到while中的条件失败,或者如果case条件失败并且控件进入else块,则语句
$select\u element.contains('abcd')
不会像代码所希望的那样返回真/假。如果找不到元素,cypress将失败并停止
您需要做的是从元素中获取值,并对其进行比较。下面是使用闭包(回调)实现这一点的方法
但是因为它在回调中,所以它是异步的,并且不会在循环中工作。这是同一作者提出的重复问题,请参见,但问题仍然不是solved@phileinSophos-Mikkel刚刚告诉了你为什么,因为它在回调中,它是异步的,在你的循环中不起作用
cy.get('h1 > em').then(($select_element) => {
if($select_element.text().match('abcd')) {
cy.log("string found")
} else ...
})