Selenium에서 요소 찾기 및 요소들 찾기
(Find Element and Find Elements in Selenium
)
Find Element / s 명령이 필요한 이유는 무엇입니까?
웹 페이지와 상호 작용하려면 사용자가 웹 요소를 찾아야 합니다. 요소 찾기 명령은 웹 페이지에서 (하나의) 웹 요소를 고유하게 식별하는 데 사용됩니다. 반면, 요소 찾기 명령은 웹 페이지 내의 웹 요소 목록을 고유하게 식별하는 데 사용됩니다. ID, 이름, 클래스 이름, 링크 텍스트, 부분 링크 텍스트, 태그 이름 및 XPATH와 같이 웹 페이지에서 웹 요소를 고유하게 식별하는 여러 가지 방법이 있습니다.
FindElement 명령 구문 :
요소 찾기 명령은 By 객체를 매개 변수로 사용하고 WebElement 유형의 객체를 반환합니다. 개체는 ID, 이름, 클래스 이름, XPATH 등 다양한 로케이터 전략과 함께 사용할 수 있습니다. 아래는 Selenium 웹 드라이버의 FindElement 명령 구문입니다.
WebElement elementName = driver.findElement (By.LocatorStrategy ( "LocatorValue"));
로케이터 전략은 다음 값 중 하나를 사용하여 수행 할 수 있습니다.
- ID
- Name
- Class Name
- Tag Name
- Link Text
- Partial Link Text
- XPATH
로케이터 값은 웹 요소를 식별 할 수 있는 고유 한 값입니다. 웹 요소가 ID 또는 이름과 같은 특정 속성을 사용하여 고유하게 식별 될 수 있도록 하는 것은 개발자와 테스터의 책임입니다.
예:
WebElement loginLink = driver.findElement (By.linkText ( "Login"));
FindElements 명령 구문 :
요소 찾기 명령은 By 객체를 매개 변수로 사용하고 웹 요소 목록을 반환합니다. 주어진 locator 전략과 locator 값을 사용하여 찾은 요소가없는 경우 빈 목록을 반환합니다. 다음은 find 요소 명령의 구문입니다.
List <WebElement> elementName = driver.findElements (By.LocatorStrategy ( "LocatorValue"));
예:
List <WebElement> listOfElements = driver.findElements (By.xpath ( "// div"));
요소 대 요소들 찾기
다음은 find 요소와 find 요소들 명령 간의 주요 차이점입니다.
요소 찾기 |
요소들 찾기 |
동일한 로케이터로 발견 된 여러 웹 요소가있는 경우 가장 많은 첫 번째 웹 요소를 반환합니다. |
웹 요소 목록을 반환합니다. |
NoSuchElementException - 로케이터 전략에 일치하는 요소가없는 경우 |
로케이터 전략과 일치하는 웹 요소가없는 경우 비어있는 목록을 반환합니다. |
하나의 웹 요소 만 찾습니다. |
로케이터 전략과 일치하는 요소 모음을 찾습니다. |
해당 사항 없음 |
각 웹 요소는 배열과 마찬가지로 0부터 시작하는 숫자로 인덱싱됩니다. |
예
요소 찾기
다음 응용 프로그램은 데모 용도로 사용됩니다.
http://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("http://demo.guru99.com/test/ajax.html");
// Find the radio button for "No" using its ID and click on it
System.out.println(By.Name("name"));
}
}
요소 찾기 명령 :
시나리오:
1. 테스트중인 응용 프로그램의 URL을 엽니다.
2. 라디오 버튼 텍스트를 찾아서 출력 콘솔에 출력하십시오.
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("http://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"));
}
}
}
개요:
- 요소 찾기 명령은 웹 페이지에서 가장 첫 번째 요소와 일치하는 웹 요소를 반환합니다.
- 요소 찾기 명령은 조건과 일치하는 웹 요소 목록을 반환합니다.
- 요소 찾기 명령은 조건과 일치하는 요소를 찾지 못하면 NoSuchElement 예외를 throw합니다.
- 요소 찾기 명령은 조건과 일치하는 요소가없는 경우 빈 목록을 반환합니다.
'자동화테스트 > Selenium' 카테고리의 다른 글
2019 년 톱 15 셀레늄 대안 (0) | 2019.01.20 |
---|---|
셀레늄 대 HP UFT (QTP) 차이점 (0) | 2019.01.19 |
Selenium Webdriver에서 Sikuli를 사용하여 파일 업로드 (0) | 2019.01.15 |
Selenium Webdriver에서 페이지를 위로 또는 아래로 스크롤 (0) | 2019.01.14 |
Selenium WebDriver에서 객체 저장소 만들기 XML 및 속성 파일 (1) | 2019.01.13 |