Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 断开if/else块,无异常Cypress_Javascript_Jquery_Automation_Cypress - Fatal编程技术网

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 ...
})