요소 찾기 Selenium – XPath의 FindElement
요소 찾기 명령이 필요한 이유는 무엇입니까?
웹 페이지와의 상호 작용을 위해서는 사용자가 웹 요소를 찾아야 합니다. 요소 찾기 명령은 웹 페이지 내에서 하나의 웹 요소를 고유하게 식별하는 데 사용됩니다. 반면 요소 찾기 명령은 웹 페이지 내의 웹 요소 목록을 고유하게 식별하는 데 사용됩니다. ID, 이름, 클래스 이름, 링크 텍스트, 부분 링크 텍스트, 태그 이름 및 XPATH와 같은 웹 페이지 내의 웹 요소를 고유하게 식별하는 방법에는 여러 가지가 있습니다.
FindElement 명령 구문
WebElement elementName = driver.findElement(By.LocatorStrategy("LocatorValue"));
Selenium 요소 찾기 명령은 By 개체를 매개 변수로 사용하고 목록 WebElement 유형의 개체를 반환합니다. Selenium. 객체별은 ID로 요소 찾기와 같은 다양한 로케이터 전략과 함께 사용될 수 있습니다. Selenium, 이름, 클래스 이름, XPATH 등. 아래는 FindElement 명령의 구문입니다. Selenium 웹 드라이버.
로케이터 전략은 다음 값 중 하나가 될 수 있습니다.
- ID
- Selenium 이름으로 요소 찾기
- 클래스 이름
- 태그 이름
- 링크 텍스트
- 부분 링크 텍스트
- XPATH
로케이터 값은 웹 요소를 식별하는 데 사용되는 고유 값입니다. ID나 이름과 같은 특정 속성을 사용하여 웹 요소를 고유하게 식별할 수 있는지 확인하는 것은 개발자와 테스터의 책임입니다.
예:
WebElement loginLink = driver.findElement(By.linkText("Login"));
예: 다음에서 요소 찾기 Selenium
다음 애플리케이션은 데모 목적으로 사용됩니다.
https://demo.guru99.com/test/ajax.html
시나리오 :
1 단계 : AUT 열기
2 단계 : 라디오 버튼을 찾아 클릭하세요.
package com.sample.stepdefinitions; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class NameDemo { public static void main(String[] args) { // TODO Auto-generated method stub System.setProperty("webdriver.chrome.driver", "D:\\3rdparty\\chrome\\chromedriver.exe"); WebDriver driver = new ChromeDriver(); driver.manage().window().maximize(); driver.get("https://demo.guru99.com/test/ajax.html"); // Find the radio button for “No” using its ID and click on it driver.findElement(By.id("no")).click(); //Click on Check Button driver.findElement(By.id("buttoncheck")).click(); } }
FindElements 명령 구문
List<WebElement> elementName = driver.findElements(By.LocatorStrategy("LocatorValue"));
요소 찾기 Selenium 명령은 By 개체를 매개 변수로 사용하고 웹 요소 목록을 반환합니다. 주어진 로케이터 전략과 로케이터 값을 사용하여 요소를 찾지 못한 경우 빈 목록을 반환합니다. 다음은 요소 찾기 명령의 구문입니다.
예:
List<WebElement> listOfElements = driver.findElements(By.xpath("//div"));
예: 요소 찾기 Selenium
시나리오 :
1 단계 : 테스트 중인 애플리케이션의 URL을 엽니다.
1 단계 : 라디오 버튼의 텍스트를 찾아 출력 콘솔에 인쇄합니다.
package com.sample.stepdefinitions; import java.util.List; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; public class NameDemo { public static void main(String[] args) { System.setProperty("webdriver.chrome.driver", "X://chromedriver.exe"); WebDriver driver = new ChromeDriver(); driver.get("https://demo.guru99.com/test/ajax.html"); List<WebElement> elements = driver.findElements(By.name("name")); System.out.println("Number of elements:" +elements.size()); for (int i=0; i<elements.size();i++){ System.out.println("Radio button text:" + elements.get(i).getAttribute("value")); } } }
요소 찾기 대 요소 찾기
다음은 요소 찾기와 요소 찾기 명령 간의 주요 차이점입니다.
요소 찾기 | 요소 찾기 |
---|---|
동일한 로케이터를 사용하여 여러 웹 요소가 발견된 경우 가장 많은 첫 번째 웹 요소를 반환합니다. | 웹 요소 목록을 반환합니다. |
로케이터 전략과 일치하는 요소가 없는 경우 NoSuchElementException 예외가 발생합니다. | 로케이터 전략과 일치하는 웹 요소가 없는 경우 빈 목록을 반환합니다. |
XPath로 요소 찾기는 하나의 웹 요소만 찾습니다. | 로케이터 전략과 일치하는 요소 컬렉션을 찾습니다. |
해당 사항 없음 | 각 웹 요소는 배열처럼 0부터 시작하는 숫자로 인덱싱됩니다. |
제품 개요
- 요소 찾기 명령은 웹 페이지 내에서 첫 번째로 가장 많은 요소와 일치하는 웹 요소를 반환합니다.
- 요소 찾기 명령은 기준과 일치하는 웹 요소 목록을 반환합니다.
- XPath로 요소 찾기 Selenium 명령은 기준과 일치하는 요소를 찾지 못하면 NoSuchElementException을 발생시킵니다.
- 요소 찾기 명령은 빈 목록을 반환합니다. Selenium 기준에 맞는 요소가 없는 경우