Javascript 如何检查量角器中是否存在DOM元素?

Javascript 如何检查量角器中是否存在DOM元素?,javascript,angularjs,testing,protractor,end-to-end,Javascript,Angularjs,Testing,Protractor,End To End,只需单击注销链接(如果存在)。如果该链接不存在,则不执行任何操作 代码如下: browser.get(browser.baseUrl + 'login'); var lnkLogOff = element(by.linkText('Log off')); if (lnkLogOff.isPresent()) lnkLogOff.click(); 看来没什么问题。但是当链接不在页面上时,我得到了一个NoSuchElementError 检查量角器中是否存在元素的正确方法是什么?试试这段代码,看

只需单击注销链接(如果存在)。如果该链接不存在,则不执行任何操作

代码如下:

browser.get(browser.baseUrl + 'login');

var lnkLogOff = element(by.linkText('Log off'));
if (lnkLogOff.isPresent()) lnkLogOff.click();
看来没什么问题。但是当链接不在页面上时,我得到了一个
NoSuchElementError


检查量角器中是否存在元素的正确方法是什么?

试试这段代码,看起来您不是在等待元素出现

var waitElementToBeShown = function (elm) {
browser.wait(function () {
    return elm.isPresent();
},15000);
browser.wait(function () {
    return elm.isDisplayed();
},15000);
})

第一部分对应于DOM中元素的呈现, 第二部分对应于单击它的功能

您可以使用:


你能再澄清一点吗?定位器应该放在代码中的什么位置?var elem=element(by.linkText('Log off');waitElementToBeShown(elem);元素单击();
var locator = by.linkText('Log off');
browser.isElementPresent(locator).then(function (present) {
    if (present) {
        element(locator).click();
    }
});