如何检查量角器中是否存在 DOM 元素?
How to check the presence of a DOM element in protractor?
只想单击注销 link 如果它存在。如果 link 不存在,则不执行任何操作。
代码如下:
browser.get(browser.baseUrl + 'login');
var lnkLogOff = element(by.linkText('Log off'));
if (lnkLogOff.isPresent()) lnkLogOff.click();
看来没什么问题。但是当 link 不在页面上时,我得到了 NoSuchElementError
。
检查量角器中是否存在元素的正确方法是什么?
试试这个代码,看起来你不是在等待元素被呈现。
var waitElementToBeShown = function (elm) {
browser.wait(function () {
return elm.isPresent();
},15000);
browser.wait(function () {
return elm.isDisplayed();
},15000);
};
第 1 部分对应 DOM 中元素的呈现,
第二部分对应于点击它的能力
您可以使用 isElementPresent()
:
var locator = by.linkText('Log off');
browser.isElementPresent(locator).then(function (present) {
if (present) {
element(locator).click();
}
});
只想单击注销 link 如果它存在。如果 link 不存在,则不执行任何操作。
代码如下:
browser.get(browser.baseUrl + 'login');
var lnkLogOff = element(by.linkText('Log off'));
if (lnkLogOff.isPresent()) lnkLogOff.click();
看来没什么问题。但是当 link 不在页面上时,我得到了 NoSuchElementError
。
检查量角器中是否存在元素的正确方法是什么?
试试这个代码,看起来你不是在等待元素被呈现。
var waitElementToBeShown = function (elm) {
browser.wait(function () {
return elm.isPresent();
},15000);
browser.wait(function () {
return elm.isDisplayed();
},15000);
};
第 1 部分对应 DOM 中元素的呈现, 第二部分对应于点击它的能力
您可以使用 isElementPresent()
:
var locator = by.linkText('Log off');
browser.isElementPresent(locator).then(function (present) {
if (present) {
element(locator).click();
}
});