如何在量角器中检查DOM元素的存在?

时间:2015-03-24 15:42:14

标签: 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

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

2 个答案:

答案 0 :(得分:4)

您可以使用isElementPresent()

var locator = by.linkText('Log off');
browser.isElementPresent(locator).then(function (present) {
    if (present) {
        element(locator).click();
    }
});

答案 1 :(得分:1)

试试这段代码,看起来你不是在等待呈现元素。

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

};

第1部分对应于DOM中元素的呈现, 第二部分对应于点击它的能力