본문 바로가기

개발 공부

Selenium 에서의 엘리먼트 위치 지정 NO.6 Ver.Java (XPath로 엘리먼트 위치 지정)

XPath는 XML문서에서  노드를 선택할 때 사용하는 쿼리 언어다.

대부분의 브라우저는 XHTML페이지를 HTML문서로 표현하는 것처럼 XPath를 지원한다.

XPath로 엘리먼트를 지정하는 방법은 유연함도 있고 정상적으로 동작하겠지만, 느린 성능 때문에 최후의 방법으로 선택해야 한다.

  • 절대 경로로 엘리먼트 찾기
WedElement userName = driver.findElement(By.xpath("html/body/div/div/form/input"));
  • 상대 경로로 엘리먼트 찾기
WebElement userName = driver.findElement(By.xpath("//input"));
  • 인덱스를 사용한 엘리먼트 찾기
WebElement userName = driver.findElement(By.xpath("//input[2]"));
  • Xpath와 속성 값으로 엘리먼트 찾기
//id 속성값으로 위치 지정.
WebElement username = driver.findElement(By.xpath("//input[@id='username']"));

//art 속성값으로 img위치 지정.
WebElement previousButton = driver.findElement(By.xpath("img[@alt='Previous']"));

//다중 속성으로 위치 지정.
WebElement previousButton = driver.findElement(By.xpath("//input[@type='submit'][@value='Login']"));

//위의 코드와 동일한 결과
WebElement prviousButton  driver.findElement(By.xpath("//input[@type='submit' and @value='Login']"));

//둘중 하나라도 일치
WebElement prviousButton  driver.findElement(By.xpath("//input[@type='submit' or @value='Login']"));
  • Xpath 속성값으로 엘리먼트 찾기
List<WebElement> imagesWithAlt = driver.findElements(By.xpath("img[@alt]"));