繁体   English   中英

检查量角器中是否存在元素

[英]Check if an element exists in Protractor

我一直在尝试使用下面的代码片段来检查我要查找的元素是否存在,但是我得到的只是“失败:使用定位器找不到元素:By(css 选择器,.icon-cancel)”。 我想让程序做的是执行 b()

element(by.css('.icon-cancel')).isDisplayed().then(function(result) {
    if ( result ) {
        a();
    } else {
        b();
    }
});

如果元素实际上不存在于 DOM 树中,则isDisplayed()将失败 您需要使用isPresent()方法:

$('.icon-cancel').isPresent().then(function(result) {
    if ( result ) {
        a();
    } else {
        b();
    }
});

一种可能性是,如果元素是动态加载的,则在测试运行时该元素可能尚未加载。 所以你可以等待几秒钟让元素可用。

var EC = protractor.ExpectedConditions;
var yourElement = element(by.css('.icon-cancel'));
browser.wait(EC.presenceOf(yourElement), 5000);

通过使用 async/await,您现在可以在没有承诺链的情况下轻松做到这一点:

it('should something something', async () => {
    const element = element(by.css('.icon-cancel'));
    if(await element.isPresent()) {
        // Element is found
    } else {
        // Element is not found
    }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM