isPresent 메서드와 isDisplayed 메서드의 차이점은 무엇입니까?
방금 프로젝터를 사용해서 시험지를 작성하기 시작했어요.두 가지 차이점이 무엇인지 궁금합니다.isPresent()그리고.isDisplayed()방법들.
API 정의
그럼... 어떤 경우에 다른가요?
isPresent는 요소가 페이지(DOM)에 존재하는 경우 true이지만 숨길 수 있습니다(표시: css에 없음). isPresent가 true이고 요소가 표시되는 경우에만 true로 표시됩니다.
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;
}
가시성과 존재감을 모두 갖춘 오브젝트라도 해결 중에 통과할 수 있습니다.다음은 예를 제시하겠습니다.
deferred.fulfill({
visible: isDisplayed,
present: true
});
단, 이것은 기대 문장으로는 잘 동작하지 않습니다.
IsPresent(): 요소가 DOM에 있는 경우 TRUE를 반환하고(숨겨지거나 숨기지 않을 수 있음) 그렇지 않으면 false를 반환합니다.
IsDisplayed():
- 요소가 DOM에 존재하고 표시되는 경우 TRUE를 반환합니다.
- 요소가 DOM에 존재하고 숨겨진 경우 FALSE를 반환합니다.
- 요소가 DOM에 없는 경우 예외를 발생시킵니다.
전화할 때 오류가 발생하면isDisplayed()페이지에 요소가 없기 때문입니다. 즉,NoSuchElementError: No element found using locator다음 작업을 수행합니다.
심플하게.isDisplayed()다음과 같은 방법으로 처리합니다.
function isTrulyDisplayed (elementToCheckVisibilityOf) {
return elementToCheckVisibilityOf.isDisplayed().then(function (isDisplayedd) {
return isDisplayedd;
}).then(null, function (error) {
console.log('A NoSuchElement exception was throw because the element is NOT displayed so we return false');
return false;
}); };
이게 밖에 있는 누군가를 돕길 바라!
isDisplayed()와 isPresent() 사이에는 큰 차이가 있습니다.
isDisplayed() - 요소는 페이지에 표시되지만 표시됩니다.
isPresent() - 페이지의 DOM 전체에 요소가 존재합니다.숨길 수도 있고 비활성화할 수도 없지만 존재할 수도 있습니다.
검색하는 특정 요소에 대해 검증할 필요가 있는 경우 isPresent()를 사용하지 마십시오.그 대신, 그 요소의 존재에 근거하는 다른 체크의 검증에 사용할 수 있습니다.
언급URL : https://stackoverflow.com/questions/28119084/what-is-the-difference-between-the-ispresent-and-isdisplayed-methods
'programing' 카테고리의 다른 글
| jQuery UI 자동 완성:제안된 리스트에서 선택한 값만 허용 (0) | 2023.03.18 |
|---|---|
| UI-Router를 사용하여 페이지 제목 설정 (0) | 2023.03.18 |
| 상속된 개체를 JSON으로 문자열화하는 방법 (0) | 2023.03.18 |
| 모든 http 콜에서 디폴트 요구 헤더의 액시오 설정을 작성하려면 어떻게 해야 합니까? (0) | 2023.03.18 |
| ui-grid에서 새로 고침 방법을 사용하는 방법 (0) | 2023.03.18 |