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);
}
})
我在 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);
}
})