在if语句中添加元素验证时遇到问题。
基本上,与if语句的结果无关,Protractor仍然试图找到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部分被成功忽略了!
任何人都有这方面的解决方案,或者可能知道为什么会发生这种情况?
提前致谢:)
答案 0 :(得分:2)
你调试了有问题的区域吗? 然而,你的永远错误的陈述可能是promise,这总是一个真正的价值。为了解决这个问题,你需要把整个块放到回调中。 例如:
doStuff()
.then(function (result) {
if (yourAlwatsFalsyCondition(result) {
return elementFindYouDid(results)
.moreStuff(doMore);
}
})