翁鹏飞*_*翁鹏飞 32 javascript angularjs protractor
我刚开始使用Protractor编写测试.我想知道isPresent()和isDisplayed()方法之间的区别.
API定义
那么......它们在哪些情况下有所不同?
sap*_*ens 46
isPresent:如果在一个网页(DOM)存在的元素,但可以隐藏(没有在CSS中显示)为真 isDisplayed是真的只有isPresent是真实的和元素可见
小智 11
isDisplayed解析该元素是否可见,但如果它不在DOM中则抛出异常.
isPresent解决它是否存在于DOM中,无论它是否实际可见.它没有抛出异常.
如果在DOM中找不到该元素,则可以使用以下代码来避免isDisplayed抛出的异常:
function isVisible(e) {
var deferred = protractor.promise.defer();
if (e) {
e.isDisplayed().then(
// isDisplayed Promise resolved
function(isDisplayed) {
deferred.fulfill(isDisplayed);
},
// Silencing the error thrown by isDisplayed.
function(error) {
deferred.fulfill(false);
}
);
}
else {
deferred.reject(new Error('No element passed'));
}
return deferred.promise;
}
Run Code Online (Sandbox Code Playgroud)
即使具有可见性和存在性的对象也可以在解析时传递,例如:
deferred.fulfill({
visible: isDisplayed,
present: true
});
Run Code Online (Sandbox Code Playgroud)
但是,这与expect语句不兼容.
IsPresent():如果元素存在于 DOM 中,则返回 TRUE(可能隐藏也可能不隐藏),否则返回 false
被陈列():
| 归档时间: |
|
| 查看次数: |
26980 次 |
| 最近记录: |