If语句中的Javascript元素验证

时间:2015-01-17 08:00:20

标签: javascript selenium selenium-webdriver protractor

在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部分被成功忽略了!

任何人都有这方面的解决方案,或者可能知道为什么会发生这种情况?

提前致谢:)

1 个答案:

答案 0 :(得分:2)

你调试了有问题的区域吗? 然而,你的永远错误的陈述可能是promise,这总是一个真正的价值。为了解决这个问题,你需要把整个块放到回调中。 例如:

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