Javascript If 语句中的元素验证

Javascript Element Validation within If-Statement

我在 if 语句中添加元素验证时遇到问题。

基本上,与 if 语句的结果无关,量角器仍在尝试查找 if 语句中指定的元素。

即使 if 语句返回 false,下面的代码仍然是 运行:

if (thisIsAlwaysFalse == true) {
    console.log(':::::::::::::::' + thisIsAlwaysFalse);
    it('If-statement test', function(done) {
        var elementToFind = element(by.xpath('//td[contains(@class,"hello")]'));
        browser.wait(function() {
            return browser.isElementPresent(elementToFind);
        }, 5000);
        elementToFind.click();
        done();
    });
}

此外,有趣的是 console.log 部分被成功忽略了!

有人对此有解决方案或者可能知道为什么会这样吗?

提前致谢:)

有问题的地方调试了吗? 然而,您的始终为假的陈述可能是一个 promise,它始终是一个真值。为了解决它,你需要把整个块放到 then 回调中。 例如:

doStuff()
.then(function (result) {
    if (yourAlwatsFalsyCondition(result) {
        return elementFindYouDid(results)
            .moreStuff(doMore);
    }
})