1. Selenium, 웹 애플리케이션 테스트를 위한 프레임워크
- Selenium 주입
- maven : https://mvnrepository.com/artifact/org.seleniumhq.selenium
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-api</artifactId>
<version>3.141.59</version>
</dependency>
<!-- chrome-driver 사용 예정 -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-chrome-driver</artifactId>
<version>3.141.59</version>
</dependency>
- 크롬 드라이버 다운로드
ChromeDriver - WebDriver for Chrome - Downloads
Current Releases If you are using Chrome version 104, please download ChromeDriver 104.0.5112.29 If you are using Chrome version 103, please download ChromeDriver 103.0.5060.134 If you are using Chrome version 102, please download ChromeDriver 102.0.5005.6
chromedriver.chromium.org
2. Selenium 기본 구조
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class SeleniumTest {
private WebDriver driver;
// 드라이버 설정
public static final String WEB_DRIVER_ID = "webdriver.chrome.driver";
// 드라이버 경로 지정
public static final String WEB_DRIVER_PATH = "D:/devtools/chromedriver_win32/chromedriver.exe";
// Selenium으로 탐색할 URL
private String base_url;
public SeleniumTest() { // 생성자를 통한 값 할당
System.setProperty(WEB_DRIVER_ID, WEB_DRIVER_PATH);
driver = (WebDriver) new ChromeDriver();
base_url = "탐색하고자 하는 사이트의 url";
}
public void crawl() throws Exception {
driver.get(base_url); // url을 가져온다.
// 이하 크롤링 코드 작성 ...
}
public static void main(String[] args) throws Exception {
new SeleniumTest().crawl(); // main에서 메서드 crawl()을 실행하면 크롤링 시작!
}
}
3. Selenium 기본 문법
1) element, elements : Selenium으로 탐색한 객체
// DOM에서 탐색한 객체 저장
WebElement element = driver.findElement( /* 한 개의 값 */ );
List<WebElement> elements = driver.findElements( /* 복수 개의 값 */ );
element.click(); // 해당 객체 클릭
element.getText(); // 해당 객체의 텍스트 반환
element.getAttribute("이름") // 해당 객체의 attribute 반환
elements.getSize(); // 해당 객체의 개수 반환
2) By : DOM 객체 탐색 방법
// 많이 쓰이는 방법
By.cssSelector(".restaurant-list > div"); // css 셀렉터로 탐색
By.ByXPath("//*[@id='cntntsView']/div[1]"); // 경로로 탐색
By.id("content"); // id 속성으로 탐색
By.tagName("table"); // tag 명으로 탐색
By.name("address_input"); // name 속성으로 탐색
By.className("restaurant-list"); // class 속성으로 탐색
By.linkText("현재 위치로 설정합니다."); // 링크가 있는 텍스트 탐색
- XPath 쉽게 찾는 방법
[Selenium] XPath 쉽게 찾는 방법 [Chrome 개발자도구로 XPath 찾기]
[Selenium] 자바(Java)에서 셀레늄(Selenium) 사용하기 [Selenium, 웹 애플리케이션 테스트를 위한 프레임 1. Selenium, 웹 애플리케이션 테스트를 위한 프레임워크 - Selenium 주입 - maven : https://mvnr..
yermi.tistory.com