comprehensive xpath tutorial xml path language
예제를 통해 XPath (XML Path Language)에 대해 모두 알아보십시오. 이 XPath 자습서는 테스트에서 XPath, XPath 연산자, 축 및 응용 프로그램의 용도와 유형을 다룹니다.
XPath라는 용어는 XML 경로 언어를 나타냅니다. XML 문서에서 다양한 노드를 선택하는 데 사용되는 쿼리 언어입니다.
SQL이 다른 데이터베이스에 대한 쿼리 언어로 사용되기 때문에 ( 예를 들어, SQL은 MySQL, Oracle, DB2 등과 같은 데이터베이스에서 사용할 수 있으며, XPath는 다양한 언어 및 도구 ( 예를 들어, XSLT, XQuery, XLink, XPointer 등과 같은 언어 및 MarkLogic과 같은 도구, Selenium과 같은 소프트웨어 테스트 도구 등)
학습 내용 :
XPath – 개요
Xpath는 기본적으로 XML 문서를 탐색하기위한 언어이며 탐색을 설명하는 동안 XML 문서에서 임의의 방향으로 이동하여 모든 요소 또는 속성 및 텍스트 노드로 이동하는 것을 의미합니다. XPath는 World Wide Web Consortium (W3C)에서 권장하는 언어입니다.
XPath는 어디에서 사용할 수 있습니까?
XPath는 소프트웨어 개발 산업과 소프트웨어 테스트 산업 모두에서 사용할 수 있습니다.
폭 우선 검색 알고리즘 C ++
Software Testing 도메인에있는 경우 Selenium에서 자동화 스크립트를 개발하는 데 XPath를 사용할 수 있습니다. 또는 개발 도메인에있는 경우 거의 모든 프로그래밍 언어에서 XPath를 지원합니다.
XSLT는 주로 XML 컨텐츠 변환 도메인에서 사용되며 변환을 위해 XPath를 사용합니다. XSLT는 XPath 및 XQuery 및 XPointer와 같은 다른 언어와 밀접하게 작동합니다.
XPath 노드의 유형
다음은 다양한 유형의 XPath 노드입니다.
# 1) 요소 노드 : 루트 노드 바로 아래에있는 노드입니다. 요소 노드에는 속성이 포함될 수 있습니다. XML 태그를 나타냅니다. 아래 예에서와 같이 소프트웨어 테스터, 주, 국가는 요소 노드입니다.
# 2) 속성 노드 :이것은 요소 노드의 속성 / 속성을 정의합니다. 요소 노드와 루트 노드 아래에있을 수 있습니다. 요소 노드는 이러한 노드의 부모입니다. 아래 예와 같이 'name'은 요소 노드 (소프트웨어 테스터)의 속성 노드입니다. 속성 노드를 나타내는 바로 가기는 '@'입니다.
# 3) 텍스트 노드 :요소 노드 사이에 들어오는 모든 텍스트는 아래 예제 에서처럼 텍스트 노드로 알려져 있습니다.“Delhi”,“India”,“Chennai”는 텍스트 노드입니다.
# 4) 주석 노드 :이것은 테스터 또는 개발자가 프로그래밍 언어로 처리되지 않는 코드를 설명하기 위해 작성하는 것입니다. 주석 (일부 텍스트)은 다음 열기 및 닫기 태그 사이에 있습니다.
# 5) 네임 스페이스 :T ”; 0j89 //// / these는 둘 이상의 XML 요소 이름 세트 간의 모호성을 제거하는 데 사용됩니다. 예를 들어, XSLT에서 기본 네임 스페이스는 (XSL :)로 사용됩니다.
# 6) 처리 지침 :여기에는 처리를 위해 응용 프로그램에서 사용할 수있는 지침이 포함되어 있습니다. 이러한 처리 지침은 문서 어디에나있을 수 있습니다. 이것들은.
# 7) 루트 노드 :이것은 그 안에 모든 자식 요소를 포함하는 최상위 요소 노드를 정의합니다. 루트 노드에는 상위 노드가 없습니다. 아래 XML 예제에서 루트 노드는“SoftwareTestersList”입니다. 루트 노드를 선택하려면 슬래시 (예 :’/’)를 사용합니다.
위에서 언급 한 용어를 설명하기 위해 기본적인 XML 프로그램을 작성합니다.
Delhi India chennai India
원자 값 : 하위 노드 또는 상위 노드가없는 모든 노드를 원자 값이라고합니다.
컨텍스트 노드 : 표현식이 평가되는 XML 문서의 특정 노드입니다. 또한 현재 노드로 간주되고 단일 마침표 (.)로 축약 될 수 있습니다.
컨텍스트 크기 : Context Node 부모의 자식 수입니다. 예를 들어, 컨텍스트 노드가 부모의 다섯 번째 자식 중 하나이면 컨텍스트 크기는 5입니다.
토렌트 파일을 여는 방법
절대 Xpath : 이것은 루트 노드 또는‘/’로 시작하는 XML 문서의 XPath 표현식입니다. 예를 들어, / SoftwareTestersList / softwareTester / @ name =”T1 ″
상대 XPath : XPath 표현식이 선택한 컨텍스트 노드로 시작하면 상대 XPath로 간주됩니다. 예를 들어, 소프트웨어 테스터가 현재 선택된 노드 인 경우 / @ name =”T1”은 Relative XPath로 간주됩니다.
XPath의 축
- 자기 축 : 컨텍스트 노드를 선택합니다. XPath 표현식 self :: * 및. 동등합니다. 마침표 (.)로 축약됩니다.
- 자식 축 : 컨텍스트 노드의 자식을 선택합니다. 요소, 주석, 텍스트 노드 및 처리 명령은 컨텍스트 노드의 자식으로 간주됩니다. 네임 스페이스 노드와 속성 노드는 콘텐츠 노드의 자식 축으로 간주되지 않습니다. 예를 들어, 아이 :: 소프트웨어 테스터.
- 부모 축 : 컨텍스트 노드의 부모를 선택합니다 (컨텍스트 노드가 루트 노드 인 경우 부모 축은 빈 노드가됩니다.)이 축은 이중 마침표 (..)로 축약됩니다. 식 (parent :: State) 및 (../State)는 동일합니다. 컨텍스트 노드에 부모 요소가없는 경우이 XPath 표현식은 빈 노드가됩니다.
- 속성 축 : 컨텍스트 노드의 속성을 선택합니다. 이 속성 축은 at-sign (@)으로 축약됩니다. 컨텍스트 노드가 요소 노드가 아니면 빈 노드가됩니다. (attribute :: name) 및 (@name) 표현식은 동일합니다.
- 조상 축 : 컨텍스트 노드의 부모와 부모의 부모 등을 선택합니다. 컨텍스트 노드 자체가 루트 노드가 아닌 경우이 축에는 루트 노드가 포함됩니다.
- 조상 또는 자신 : 상위, 상위의 상위 등이있는 컨텍스트 노드를 선택하고 항상 루트 노드를 선택합니다.
- 하위 축 : 컨텍스트 노드의 모든 하위 항목, 해당 하위 항목 등을 선택합니다. 컨텍스트 노드의 자식은 요소, 주석, 처리 지침 및 텍스트 노드 일 수 있습니다. 네임 스페이스 노드와 속성 노드는 하위 축에서 고려되지 않습니다.
- 후손 또는 자신 : 컨텍스트 노드와 컨텍스트 노드의 모든 하위 항목 및 모든 컨텍스트 노드의 모든 하위 항목을 선택합니다. 위의 경우 요소에서와 같이 주석, 처리 명령 및 텍스트 노드가 고려되고 네임 스페이스 및 속성 노드는 컨텍스트 노드의 자식 아래에서 고려되지 않습니다.
- 선행 축 : 선행 축으로 간주되는 전체 문서에서 컨텍스트 노드 앞에 오는 모든 노드를 선택합니다. 네임 스페이스, 조상 및 속성 노드는 선행 축으로 간주되지 않습니다.
- 선행 형제 축 : 컨텍스트 노드의 모든 선행 형제를 선택합니다. 컨텍스트 노드 앞에 나타나고 XML 문서에서 컨텍스트 노드와 동일한 상위를 갖는 모든 노드입니다. 컨텍스트 노드가 네임 스페이스이거나 속성 인 경우 선행 형제는 비어있게됩니다.
- 축 따라 가기 : XML 문서에서 컨텍스트 노드 뒤에 오는 모든 노드를 선택합니다. 다음 축 목록에서는 네임 스페이스, 속성 및 하위 항목이 고려되지 않습니다.
- 다음 형제 축 : 컨텍스트 노드의 다음 형제를 모두 선택하십시오. 컨텍스트 노드 뒤에 오며 XML 문서의 컨텍스트 노드와 동일한 상위를 갖는 모든 노드는 후속 형제 축으로 간주됩니다. 컨텍스트 노드가 네임 스페이스 또는 속성 노드 인 경우 빈 노드 집합이 생성됩니다.
- 네임 스페이스 : 컨텍스트 노드의 네임 스페이스 노드를 선택합니다. 컨텍스트 노드가 요소 노드가 아닌 경우 비어있게됩니다.
XPath의 데이터 유형
아래는 XPath의 다양한 데이터 유형입니다.
- 번호: XPath의 숫자는 부동 소수점 숫자를 나타내며 IEEE 754 부동 소수점 숫자로 구현됩니다. 정수 데이터 유형은 XPath에서 고려되지 않습니다.
- 부울 : 이것은 참 또는 거짓을 나타냅니다.
- 끈: 이것은 0 개 이상의 문자를 나타냅니다.
- 노드 세트 : 이것은 0 개 이상의 노드 집합을 나타냅니다.
XPath의 와일드 카드
아래에 나열된 것은 XPath의 와일드 카드입니다.
- 별표 (*) : 컨텍스트 노드의 모든 요소 노드를 선택합니다. 텍스트 노드, 주석, 처리 지침 및 속성 노드를 선택합니다.
- 별표 (@ *)가있는 기호 : 컨텍스트 노드의 모든 속성 노드를 선택합니다.
- 마디() : 컨텍스트 노드의 모든 노드를 선택합니다. 이들은 네임 스페이스, 텍스트, 속성, 요소, 주석 및 처리 지침을 선택합니다.
XPath 연산자
노트 : 아래 표에서 e는 XPath 표현식을 나타냅니다.
연산자 | 기술 | 예 |
---|---|---|
e1! = e2 | 같지 않음 | @name! =’T1’ |
e1 + e2 | 덧셈 (e1과 e2가 숫자 인 경우) | 5 + 2 |
e1-e2 | 빼기 (e1 및 e2가 숫자 인 경우) | 10-4 |
e1 * e2 | 곱하기 (e1과 e2가 숫자 인 경우) | 3. 4 |
e1 div e2 | 나누기 (e1 및 e2가 숫자이고 결과가 부동 소수점 값인 경우) | 4div 2 |
e1 | e2 | e1과 일치하고 e2와 일치하는 두 노드의 합집합. | // 상태 | //국가 |
e1 = e2 | 같음 | @ 이름 =’T1’ |
e1e1의 검정이 e2보다 작습니다 (보다 작음‘<’ must be excaped by ‘<’) | test =”5<9” will result true(). | |
e1> e2 | e1 테스트가 e2보다 큼 (보다 큼 기호‘>’는‘>’로 제외되어야 함) | test =”5> 9”는 false ()가됩니다. |
e1<= e2 | e1의 검정은 e2보다 작거나 같습니다. | test =”5<= 9” will result false(). |
e1> = e2 | e1의 검정은 e2보다 크거나 같습니다. | test =”5> = 9”는 false ()가됩니다. |
e1 또는 e2 | e1 또는 e2가 참인지 평가됩니다. | |
e1 및 e2 | e1과 e2가 모두 참인지 평가합니다. | |
e1 모드 e2 | e1을 e2로 나눈 부동 소수점 나머지를 반환합니다. | 7 모드 2 |
XPath의 술어
술어는 XPath 표현식에서 선택한 노드를 제한하는 필터로 사용됩니다. 각 술어는 부울 값으로 true 또는 false로 변환됩니다. 주어진 XPath에 대해 true이면 해당 노드가 선택되고 false이면 노드가 선택되지 않습니다.
술어는 항상 ()와 같이 대괄호 안에 들어갑니다.
예를 들어, softwareTester (@ name =”T2 ″) :
그러면 값이 T2 인 속성으로 이름이 지정된 요소가 선택됩니다.
소프트웨어 테스팅에서 XPath의 응용
XPath는 자동화 테스트에 매우 유용합니다. 수동 테스트를 수행하는 경우에도 XPath에 대한 지식은 애플리케이션의 백엔드에서 일어나는 일을 이해하는 데 매우 유용합니다.
eps 파일을 열 수있는 프로그램
자동화 테스트 중이라면 모바일 앱 테스트를위한 최고의 자동화 도구 중 하나 인 Appium studio에 대해 들어 보셨을 것입니다. 이 도구에는 XPath 기능 이를 통해 자동화 스크립트 전체에서 특정 페이지의 요소를 식별 할 수 있습니다.
거의 모든 소프트웨어 테스터가 알고있는 도구 (예 : Selenium)에서 또 다른 예를 인용하고 싶습니다. Selenium IDE 및 Selenium WebDriver의 XPath에 대한 지식은 테스터에게 필수 기술입니다.
XPath는 요소 로케이터 역할을합니다. 페이지에서 특정 요소를 찾아서 일부 작업을 수행해야 할 때마다 Selenium 스크립트의 대상 열에서 해당 XPath를 언급해야합니다.
위 이미지에서 볼 수 있듯이 웹 페이지의 요소를 선택하여 검사하면 'Copy XPath'옵션이 표시됩니다. 예를 들어 Chrome 웹 브라우저를 통해 Google 검색 웹 요소에서 가져 왔고 위 이미지와 같이 XPath를 복사했을 때 아래 값을 얻었습니다.
//*(@id='tsf')/div(2)/div(3)/center/input(1)
이제이 링크에서 클릭 동작을 수행해야한다고 가정하면 Selenium 스크립트에 클릭 명령을 제공해야하며 클릭 명령의 대상은 위의 XPath가됩니다. XPath의 사용은 위의 두 도구에만 국한되지 않습니다. XPath가 사용되는 소프트웨어 테스트에는 많은 영역과 도구가 있습니다.
소프트웨어 테스트 분야에서 XPath의 중요성에 대한 공정한 아이디어를 얻으 셨기를 바랍니다.
결론
이 튜토리얼에서는 XPath, XPath 표현식 사용 방법, 다양한 언어 및 도구에서 XPath 표현식 지원에 대해 배웠습니다. 우리는 XPath가 소프트웨어 개발 및 소프트웨어 테스팅의 모든 도메인에서 사용될 수 있다는 것을 배웠습니다.
또한 XPath의 다양한 데이터 유형, XPath에서 사용되는 다른 축, 그 사용법, XPath에서 사용되는 노드 유형, XPath의 다른 연산자 및 술어, 상대 및 절대 XPath의 차이점, XPath에서 사용되는 다른 와일드 카드 등을 배웠습니다.
행복한 독서 !!
추천 도서
- XML에서 데이터베이스 테스트에 대한 간단한 접근 방식
- XML 기술을 사용한 우수한 데이터 테스트 방법 (백서)
- XML 코드 예제를 사용한 SOAtest의 어설 션
- QTP Tutorial # 16-XML, 접근성, 데이터베이스 체크 포인트를 삽입하는 단계
- 2021 년 상위 45 개 XML 인터뷰 질문 및 답변 (최신)
- SQL 대 MySQL 대 SQL Server의 차이점 (예제 포함)
- TestNG 예제 : TestNG.xml 파일을 만들고 사용하는 방법
- 구문 및 예제가 포함 된 궁극의 XPath 작성 치트 시트 자습서