sourcecode

요소가 존재하지 않는지 프로젝터 확인

copyscript 2023. 2. 23. 23:02
반응형

요소가 존재하지 않는지 프로젝터 확인

각도 기반 웹사이트에 드롭다운을 켜고 끄는 설정이 있습니다.꺼진 경우 메인 페이지에 표시되지 않습니다.

프로젝터에서는 스위치가 꺼졌을 때 이 요소가 없는지 확인해야 합니다.단, Element Not Found Error는 여러 테스트 중 하나의 테스트이므로 Element Not Found Error에 빠지면 안 됩니다.어떻게 해야 되지?

나는 다음과 같이 시도했다.

expect($$('.switch').count()).to.equal(0).and.notify(next);

하지만 AssertionError가 표시됩니다.

조금 더 효과적이었던 또 다른 옵션은 http://angular.github.io/protractor/#/api?view=ParrayFinder.protype.all을 사용하는 '프로트랙터'를 사용하는 것입니다.

element.all(by.css('.k-loading-image')).then(function(items) {
    expect(items.length).toBe(0);
});

(로딩 인디케이터가 없어졌는지 확인하고 싶었습니다)

문서에서 찾은 것을 사용하여 작업을 수행했습니다.

expect(element(by.css('.switch')).isPresent()).to.become(false).and.notify(next);

또한 주장을 사용하므로 오이즈가 깨지지 않습니다.

이렇게 해서 작동했습니다.

expect(element(by.css('css')).isPresent()).toBeFalsy();

이하를 포함한 회답은 없습니다.count()나를 위해 일했다;

$$(.disclos') 유형입니다.count()는'object'

그 약속을 이용해서 그 약속을 끌어당겨야 한다.count이렇게 가치를 매길 수 있어요.

const nameSelector = '[data-automation="name-input"]';
const nameInputIsDisplayed = () => {
    return $$(nameSelector).count()
        .then(count => count !== 0)
}
it('should not be displayed', () => {
    nameInputIsDisplayed().then(isDisplayed => {
        expect(isDisplayed).toBeFalsy()
    })
})

이러한 응답은 요소가 사라질 때까지 기다리지 않습니다.이 기능이 사라질 때까지 기다리려면 다음과 같이 Expected Conditions를 사용해야 합니다.Invisibility Of는 요소가 DOM을 빠져나갔는지 여부를 검출합니다.https://www.protractortest.org/#/api?view=Protractor Expected Conditions 문서를 참조하십시오.

  export const invisibilityOf = (el) =>
     browser.wait(ExpectedConditions.invisibilityOf(el) as any, 12000, 
    'Element taking too long to disappear in the DOM')
  const el = element(by.css(arg1))
  return invisibilityOf(el)

stalenessOf좋은 방법일 수 있습니다:Rectractor - Expected Conditions.staleness Of

예를 들어 현재 열려 있는 모달입니다.닫으면 존재하지 않을 것으로 예상합니다.

element(by.css('.modal-dialog .cancel-button')).click();
browser.wait(EC.stalenessOf(element(by.css('.modal-dialog')), 60000);
expect(element(by.css('.modal-dialog')).isPresent()).toBeFalsy();

스위치가 Configuration에 정의되어 있는 경우는, 다음과 같이 할 수 있습니다.

let dropdownSwitch = config.switch

expect(await $('dropdown css').isPresent()).toBe(dropdownSwitch);

온/오프 시 양쪽 시나리오에서 검증이 이루어집니다.

언급URL : https://stackoverflow.com/questions/25314019/protractor-check-if-element-does-not-exist

반응형