Jasmine 如何使用量角器测试页面上不存在元素?
我试图测试页面上是否没有元素Jasmine 如何使用量角器测试页面上不存在元素?,jasmine,protractor,Jasmine,Protractor,我试图测试页面上是否没有元素 expect(element(CastModule.PersonXpath).isDisplayed()).toEqual(false); 我尝试使用以下方法,但每次都会出现错误: expect(element(CastModule.PersonXpath).isDisplayed()).toEqual(false); 方法: expect(element(CastModule.PersonXpath).isDisplayed()).toEqual(false)
expect(element(CastModule.PersonXpath).isDisplayed()).toEqual(false);
我尝试使用以下方法,但每次都会出现错误:
expect(element(CastModule.PersonXpath).isDisplayed()).toEqual(false);
方法:
expect(element(CastModule.PersonXpath).isDisplayed()).toEqual(false);
错误:失败:等待量角器与页面同步后超时
秒。请看
expect(element(CastModule.PersonXpath).isDisplayed()).toEqual(false);
您推荐什么方法?错误不应与检查是否缺少元素有关。请尝试以下操作:
expect(element(CastModule.PersonXpath).isDisplayed()).toEqual(false);
var elm = element(CastModule.PersonXpath);
expect(browser.isElementPresent(elm)).toBe(false);
另见:
expect(element(CastModule.PersonXpath).isDisplayed()).toEqual(false);
isPresent()
,这意味着在dom中,isDisplayed()
意味着它实际上是可见的,我认为这是您的问题。试试看
expect(element(CastModule.PersonXpath).isDisplayed()).toEqual(false);
expect(element(CastModule.PersonXpath).isPresent()).toEqual(false);
您可能还希望将其分解为一个方法并使用一个 我使用量角器库设法找到了解决方案
expect(element(CastModule.PersonXpath).isDisplayed()).toEqual(false);
var EC = protractor.ExpectedConditions; browser.wait(EC.invisibilityOf(element(by.xpath(CastModule.PersonXpath))), 5000).then(function() {
if (EC.invisibilityOf(element(by.xpath(x.LanguagesXpath)))) {
console.log("Persons module is not present - as expected for this scenario");
} else {
throw new Error("Element STILL present");
}
});
});
要检查可见性(如果isDisplayed
或isPresent
不起作用),只需使用:
expect(element(CastModule.PersonXpath).isDisplayed()).toEqual(false);
if (!EC.invisibilityOf(ug.personXpath)) {
throw new Error("Partner logo is not displayed");
}
错误看起来与显示的元素无关。看起来这与页面同步有关。尝试忽略同步,然后使用以下命令等待超出预期的角度:
expect(element(CastModule.PersonXpath).isDisplayed()).toEqual(false);
browser.ignoreSynchronization = true;
browser.waitForAngular();
expect(element(CastModule.PersonXpath).isDisplayed()).toEqual(false);
要使用元素的存在,请使用:
expect(element(CastModule.PersonXpath).isDisplayed()).toEqual(false);
var elm = element(CastModule.PersonXpath);
elm.isPresent().then(function (present) {
if (present) {
element(CastModule.PersonXpath).then(function (labels) {
});
} else {
console.log('Element did not found');
}`enter code here`
您还可以尝试使用下面的代码来处理是否显示元素。下面的代码根据元素的可见性返回true或false
expect(element(CastModule.PersonXpath).isDisplayed()).toEqual(false);
browser.wait(() => {
return element(by.className("claasName")).isDisplayed()
.then(
(hasDisplayed) => {
console.log("Has displayed: "+ hasDisplayed);
return hasDisplayed === false;
}
);
}, 5000)
.then(
() => {
return true;
},
() => {
return false;
}
)
Lulz@alecxe。。。你比我先投降!获取错误
元素
不是karma reportCool的功能,谢谢。例如,如果我检查“x”分钟后元素不再显示,我需要使用什么?