Element 취득시의 Not found element의 에러시에 확인하는 것

Selenium에서 Element를 가져올 때 익숙하지 않은 경우 Not found element 오류가 발생합니다.
그 때 개인적으로 확인하는 것을 정리했습니다.

사용환경


  • 디버거 : Eclipse
  • 브라우저 : Chrome
  • 언어 : java

  • 1. 디버그를 실시해, Element 변수의 내용을 확인해 본다



    Eclipse의 경우 이미지와 같이 Element 변수의 Criteria와 Parent 내용을 모두 확인합니다.


    2. 브라우저 개발 도구를 열고 Elements 탭에서 AND 검색해보기



    위의 디버그에서 얻은 변수의 내용을 사용합니다. AND 검색 방법은 다음과 같습니다.
  • CSS 선택기를 사용하는 경우 : [parent 변수 내용]//[criteria 내용]
  • XPath를 사용하는 경우 : [parent 변수 내용] (반각 공백) [criteria 변수 내용]

  • 위의 검색 방법으로 다음을 확인합니다.
  • 취하고 싶은 Element가 검색에 걸리는지
  • Element가 여러 개 잡히지 않았습니까

  • 대체로 여기서 Element의 지정 방법의 실수를 깨닫기도 합니다.



    3. 개발 툴 위에서 CSS 셀렉터나 XPath를 취득해 본다



    개발 도구에서 대상 Element 마우스 오른쪽 버튼 > Copy > Copy selector/Xpath
    위의 지정 방법으로 Element를 얻을 수 있는지 시도해 보겠습니다.
    또, 자신이 기재한 지정 방법과 비교해, 어디가 다른가 확인합니다.
    ※자동으로 생성되는 CSS 셀렉터나 XPath는 메인터넌스성이 낮은 경우가 있으므로 주의해 주십시오.



    4. iframe이 아닌지 의심해 본다



    검색하려는 Element가 iframe의 요소이면 드라이버를 전환해야 합니다.
    iframe으로 전환하는 방법은 다음과 같습니다.
    Selenide.switchTo().frame(iframe)
    

    5. 다른 windows가 아닌지 의심해 본다



    검색하려는 요소가 다른 창이나 다른 탭인 경우에도 드라이버를 전환해야 합니다.
    셀레나이드를 사용하고 있는 경우는 아래에서 다른 윈도우로 전환됩니다.
    Selenide.switchTo().window(window)
    

    6. 마지막으로



    설명에 실수가 있거나 다른 뭔가 좋은 방법이 있으면 알려주세요.

    좋은 웹페이지 즐겨찾기