웹 드라이버 학습 의 xpath
4121 단어 webdriver;xpath
XPath 는 XML 쿼 리 언어 로 SQL 의 역할 과 유사 하 다.다음 HTML 을 예 로 들 어 XPath 의 문법 을 소개 합 니 다.
<html>
<head>
</head>
<body>
<div class="div1" style="height: 40px; width: 1440px;" region="north">
<div class="div11">
<div class="div111">
<div id="div1111">
<p>this is the first p</p>
</div>
</div>
<div class="div112" style="border: none;">
<p>this is the second p</p>
</div>
</div>
</div>
<div class="div2">
<div class="div21" style="border: none;">
<div class="div211" style="border: none;">
<p>this is the third p</p>
</div>
</div>
</div>
<div class="div3">
<p>this is the fourth p</p>
<div class="div31" style="border: none;">
</div>
</div>
</body>
</html>
포 지 셔 닝 노드
XML 은 트 리 구조 로 파일 시스템 내 데이터 클립 과 유사 한 구조 이 며, XPath 도 파일 시스템 의 경로 이름 방식 과 유사 하 다.그러나 XPath 는 하나의 패턴 (Pattern) 으로 XML 파일 에서 경로 가 특정한 모델 의 모든 노드 에 부합 되 는 것 을 선택 할 수 있 습 니 다.예 를 들 어 catalog 아래 cd 의 모든 price 요 소 를 선택 하려 면:
html/body/div
만약 XPath 의 시작 이 사선 (/) 이 라면 이것 은 절대적 인 경로 임 을 나타 낸다.시작 이 두 개의 사선 (/) 이면 파일 에 있 는 모든 패턴 에 맞 는 요소 가 선택 되 고 트 리 에 있 는 다른 등급 에서 도 선 택 됩 니 다.다음 문법 은 파일 에 있 는 div 라 는 모든 요 소 를 선택 합 니 다 (트 리 의 모든 등급 이 선 택 됩 니 다).
//div
이곳 을 보 았 을 때 나 는 아직도 잘 몰 랐 다. 테스트 는 다음 과 같다.
/ html / body / div / div / div: class 가 div 111, div 112, div 211 인 div 세 개 를 찾 을 수 있 습 니 다.
/ / div / div / div: 네 개의 div 를 찾 을 수 있 습 니 다. 각각 class 는 div 111, div 1111, div 112, div 211 의 div 입 니 다.
이 를 통 해 알 수 있 듯 이 / 찾 을 때 절대적 으로 일치 하 는 요소 만 찾 을 수 있 고 / / 찾 을 때 조건 에 맞 는 요소 와 하위 요 소 를 찾 을 수 있 습 니 다.
알 수 없 는 요소 선택
별표 (Wildcards, *) 를 사용 하면 알 수 없 는 요 소 를 선택 할 수 있다.
/ html / body / *: / html / body / 의 모든 하위 요 소 를 선택 하 십시오.
/ html / body / * / p: / html / body / 다음 노드 의 p 노드 선택
/ / div / * / p: 부모 노드 유형 을 임의의 요소 로 선택 하고 부모 노드 는 div 의 모든 p 노드 입 니 다.
/ * / * / price: 2 층 부모 노드 가 있 는 price 라 는 모든 요 소 를 선택 하 십시오.
/ / *: 파일 의 모든 요 소 를 선택 하 십시오.
주의해 야 할 것 은 등급 을 가리 지 않 는 요 소 를 액세스 하려 면 XPath 문법 은 두 개의 사선 으로 시작 해 야 합 니 다 (/). 알 수 없 는 요 소 를 액세스 하려 면 별표 (*) 를 사용 해 야 합 니 다. 별표 는 알 수 없 는 이름 의 요소 만 대표 할 수 있 고 알 수 없 는 등급 의 요 소 를 대표 할 수 없습니다.
분기 선택
괄호 를 사용 하면 가 지 를 선택 할 수 있 습 니 다.
/ html / body / div [1]: body 의 하위 요소 중 첫 번 째 div 요 소 를 선택 하 십시오.XPath 의 정의 에는 0 원소 라 는 것 이 없습니다.
/ html / body / cd [last ()]: body 아래 의 마지막 div 요 소 를 선택 하 십시오.
/ html / body / div [p]: body 에 p 자 요 소 를 포함 하 는 모든 첫 번 째 div 요 소 를 선택 하 십시오.
/ / div [p = 'this is the first p']: div 에 p 하위 노드 와 p 요 소 를 포함 하 는 값 을 this is the first p 의 모든 div 요 소 를 선택 하 십시오.
/ / div [p = 'this is the first p'] / p: p 의 값 을 this is the first p 의 모든 div 아래 p 요소 로 선택 하 십시오.
하나 이상 의 경로 선택
Or 동작 수 (|) 를 사용 하면 하나 이상 의 경 로 를 선택 할 수 있 습 니 다.예 를 들 면:
/ html / body / div / div | / html / body / div / p: body 아래 div 의 모든 div 및 p 요 소 를 선택 하 십시오.
속성 선택
XPath 에 서 는 요 소 를 선택 하 는 것 외 에 속성 도 선택 할 수 있 습 니 다.속성 은 모두 @ 으로 시작 합 니 다.
/ / p [@ class]: class 속성 을 가 진 p 요 소 를 모두 선택 하 십시오.
/ / p [@ *]: 속성 이 있 는 모든 cd 요 소 를 선택 하 십시오.
/ / div [@ class = 'UK']: country 속성 값 을 UK 로 선택 한 div 요소
/ / p [@ class = 'UK'] [@ name = 'hydd']: class 속성 값 은 UK, name 속성 값 은 hydd 의 p 요 소 를 선택 하 십시오.