How to find element based Text and Traverse Element?

Dahun Yoo·2020년 5월 10일
0


텍스트 기반 element를 찾으려면 어떻게하면 될까요?

"//*[text()='日本語']"

텍스트만 이용해서도 검색가능합니다.

  • 그러나 모든 방법을 이렇게 하는 것은 좋지않습니다.
    • Text는 항상 변할 수 있는 가능성이 있기 때문입니다.
    • 또한 텍스트에는 보이지 않는 공백이 들어가있을 수 있기 때문에 특정하기가 어려운 상황이 많음.
    • 일본어와 같은 언어의 경우에는 전각처리로 인하여 공백으로 보이나 공백이 아닌 경우도 있습니다.

이런 경우에 대비하여 XPath, CSS와 조합하여 형제요소, 부모요소들을 찾아낼 수 있어야합니다.


Sibling Element

바로 같은 레벨의 형제요소 들을 선언하여 찾아가는 방법입니다.

  1. 절대경로로 찾아내는 것.
    Example : //*[@id="body-inner"]/p[23]
  2. ~/following-sibling::element[number]
    이때 바로 아래 형제요소는 1번부터 시작합니다.

//*[@id="tsf"]/div[2]/div[1]/div[3]/center/input[1]

child를 찾아간다.
//tagName[@attirbute=‘’]/tagName

Child가 여러개일때는 괄호에 몇번째 자식인지 번호를 지정한다.
//tagName[@attirbute=‘’]/tagName[?]

Back to Parent from child element

~/parent::element

XPath는 거꾸로 거슬러올라갈 수 있습니다.
CSS는 이것이 불가능합니다.

profile
QA Engineer

0개의 댓글