programing

isPresent 메서드와 isDisplayed 메서드의 차이점은 무엇입니까?

telebox 2023. 3. 18. 08:29
반응형

isPresent 메서드와 isDisplayed 메서드의 차이점은 무엇입니까?

방금 프로젝터를 사용해서 시험지를 작성하기 시작했어요.두 가지 차이점이 무엇인지 궁금합니다.isPresent()그리고.isDisplayed()방법들.

API 정의

  1. 존재하다

  2. 표시됨

그럼... 어떤 경우에 다른가요?

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

반응형