使用量角器以布尔值获取元素可用性状态
我试图获取使用'If'条件的元素目前的状态,但不幸的是我不能得到'true'或'false'的结果,而是我越来越喜欢(当元素可用时,我得到的结果为'true',当元素不可用时,我会收到如下所示的错误消息)
以下是我使用的代码
describe("test 1", function () {
it("testing", function () {
var userCreationSuccessConfirmationMsg = element(by.className('alert-message ng-binding alert alert-success'));
var userCreationFailureConfirmationMsg = element(by.className('alert-message ng-binding alert alert-danger'));
browser.driver.get(testData.UBETURL);
login.loginToUbet('sysadmin', 'password');
console.log('Somesh');
element(by.linkText('Configuration')).click();
element(by.linkText('Create New User')).click();
element.all(by.id('saveUser')).first().click();
console.log(expect(userCreationSuccessConfirmationMsg.isDisplayed()));
userCreationSuccessConfirmationMsg.isDisplayed().then(function (status) {
if (status) {
console.log(status);
} else {
console.lgo(status);
}
});
});
});
如何使用if在布尔值中获取元素可用性状态,请在这里指导我?
您可以使用isPresent
来确定页面中是否存在元素:
userCreationSuccessConfirmationMsg.isPresent().then(function (status) {
if (status) {
console.log('present');
} else {
console.log('not present');
}
});
文档:
http://www.protractortest.org/#/api?view=ElementFinder.prototype.isPresent
如果你知道成功的时候(并且只有当)返回的状态是'真',那么你可以检查确切的文本是字符串:
userCreationSuccessConfirmationMsg.isDisplayed().then(function (status) {
if (status === 'true') {
...
}
});
试试这个,我相信当所有的顺利通过时你并不需要记录:
expect(userCreationSuccessConfirmationMsg.isDisplayed()).toBeTruthy('Your message that should be printed when expectation is failed.')
茉莉花可以接受期望的可选信息,几乎所有的匹配者都支持它。
你也可以看看我的图书馆 - 它确实以聪明的方式匹配那个元素 - 在期望失败之前会等待元素。 当您的元素出现延迟时很有用。 功能请求是受欢迎的。
https://github.com/Xotabu4/jasmine-protractor-matchers
链接地址: http://www.djcxy.com/p/13023.html上一篇: Get the element availability status in boolean using protractor