2017-04-26 1 views
0

잘 할 수 있을지 모르겠지만, HTML 요소 속성과 같은 무언가가 존재하거나 존재하지 않는 곳에 어설 션/예상 작성을 할 수 있습니까? 아니면 하나 또는 다른 버전에 실패했습니다.속성의 존재 여부에 대한 테스트

나는 anchor 요소에 대한 테스트를 작성하고 있습니다. 테스트 기대는 링크가 동일한 창에서 열리는 것입니다.

<a href="https://foo.com">Foo</a> 

이제 모든 웹 개발자가 알 수 있듯이 위의 예는 그렇게 할 것입니다. 그러나,이 링크의 두 번째 버전도 가능합니다 :

<a href="https://foo.com" target="_self">Foo</a> 

target의 사용은 스타일의 문제와 어떤 경우에 가장 확실하게 불필요한입니다. target="_self"의 존재 또는 부재가 임의로 보이는 페이지가 있습니다.

어떤 제안이나 예가 있습니까?

NB 내가 하나 또는 다른 실패하는 기회로 사용하고있는 HTML을 수정할 수있는 기회로 사용 고려 중이 야 "강화." 어떤 질문에 다른 방식으로 대답 할 수 있습니다.

+2

희망 귀하의 질문을 이해하고 있습니다. 조건부 어설 션은 가능하지 않지만 조건부를 사용하여 특정 어설 션에 대한 경로를 생성합니다. 당신은 그냥'getAttribute ('target')을 호출 할 수 있습니까? 그렇다면 (function (val) {if (val) .... assertion1 ... else ... assertion2 ...})'요소에서? 좀 더 완전한 예제가 필요한 경우, 필자는이를 작성할 수있다. – Gunderson

답변

0

아래 희망 코드는 귀하의 요구 사항을 충족시킵니다. 앵커 요소 위치 지정자를 변경해야 할 수 있습니다.

element(by.xpath('.//*[text()="Foo"]')) 
     .getAttribute('target') 
     .then(function(value){ 
      //this function gets executed only if target attribute is present 
      }, 
      function(error){ 
      //this is a error case and will gets executed when target 
      //attribute is NOT present in the anchor element 
      } 
    ); 
관련 문제