xpath에서 상위(부모) 노드를 접근하는 경로

kyeongjun_min·2022년 4월 8일
0

UI 테스트 자동화

목록 보기
1/3
post-thumbnail

UI 테스트 자동화를 짜던 중, 필요한 항목들에 각각 id 값이 존재하는 element를 발견했다.
다만, 라디오 버튼에 포함된 input 태그였기에 click 값을 주거나 send_keys로 enter를 넣어줘도 선택되지 않았다.

따라서 id가 존재하는 input 태그를 중심으로 그 상위 노드인 div 태그를 접근해서 click 하는 방법을 시도해보았다.

구글링 결과 xpath의 한 element를 중심으로 그 상위 노드를 접근하는 방법은 2가지가 있었다.

  1. //input[@id='thisID']/..
  2. //input[@id='thisID']/parent::div

위 2가지 모두 하나뿐인 상위 노드 div를 잘 가리켰다.

하지만 정확성과 사용성의 면에서 바라보면 2번째 방법이 더 효과적이고 다양한 케이스에서도 더 활용하기 좋다. 아래와같이 parent 이외에도 사용할 수 있는 검색 방향들이 여럿 있다.

검색 방향설명
self현재 노드를 선택한다.
attribute현재 노드의 속성 노드를 모두 선택한다.
namespace현재 노드의 네임스페이스 노드를 모두 선택한다.
child현재 노드의 자식 노드를 모두 선택한다.
descendant현재 노드의 자손 노드를 모두 선택한다.
descendant-or-self현재 노드와 현재 노드의 자손 노드를 모두 선택한다.
followingXML 문서에서 현재 노드의 종료 태그 이후에 등장하는 모든 노드를 선택한다.
following-sibling현재 노드 이후에 위치하는 형제 노드를 모두 선택한다.
parent현재 노드의 부모 노드를 선택한다.
ancestor현재 노드의 조상 노드를 모두 선택한다.
ancestor-or-self현재 노드와 현재 노드의 조상 노드를 모두 선택한다.
precedingXML 문서에서 현재 노드 이전에 등장하는 모든 노드를 선택한다.(조상 노드, 속성 노드, 네임스페이스 노드는 제외한다.)
preceding-sibling현재 노드 이전에 위치하는 형제 노드를 모두 선택한다.

경로 표현식

//element[@id='현재노드']/검색방향::검색노드[필터표현식]

ex) //input[@id='myId']/parent::div

참조

  1. http://www.tcpschool.com/xml/xml_xpath_pathExpression
  2. https://coding-restaurant.tistory.com/359
profile
QA Engineer, 즐겁게 기록을 시작

0개의 댓글