헬린코린이
Selenium 본문
Selenium은 웹 애플리케이션을 위한 테스팅 프레임워크입니다.
자동화 테스트를 위해 여러 가지 기능을 지원합니다. 다양한 언어에서도 사용이 가능합니다.
Beautiful Soap는 웹사이트에서 버튼을 클릭해야 얻을 수 있는 데이터라던가, Javascript에 조건이 충족되어야만 얻을 수 있는 데이터에
접근하는 것에 한계가 있습니다.
그래서, 직접적으로 웹 사이트에 접근할 수 있게 해주는 Selenium을 사용해야 합니다. 새로운 환경에서 웹 브라우저를 대신해 줄
Web Driver가 필요합니다 Web Driver는 Selenium이 사용할 웹 브라우저이고, Selenium으로 자동화하여 웹 사이트를 탐험하면 됩니다.!
Chrome에서 사용하려면 크롬 드라이브도 설치해야 하는데 자신이 쓰고 있는 크롬 하고 맞는 버전을 설치하면 된다.
package model;
import java.util.ArrayList;
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 Test01 {
public static final String WEB_DRIVER_ID = "webdriver.chrome.driver"; //드라이브ID
public static final String WEB_DRIVER_PATH = "/Users/sonminseong/Downloads/chromedriver"; //드라이브 경로.
public static void main(String[] args) {
System.setProperty(WEB_DRIVER_ID, WEB_DRIVER_PATH);
WebDriver driver = new ChromeDriver();
// 접속할 url
String base_url = "https://www.naver.com";
try{
// 접속
driver.get(base_url);
// 페이지로 들어갑니다.
//System.out.println(driver.getPageSource());
// 태그중에 첫번째 찾은거
WebElement webElement = driver.findElement(By.name("query"));
// 키를 체크
webElement.sendKeys("역삼동 날씨");
// 데이터 보내기 (수행)
webElement.submit();
WebElement el2=driver.findElement(By.xpath("//*[@id=\"main_pack\"]/section[1]/div[1]/div[2]/div[5]/div[1]/div/div[2]/ul"));
List<WebElement> list = new ArrayList<>(el2.findElements(By.className("week_item"))); //ul li
for(int i=0; i<list.size(); i++) {
System.out.println(list.get(i).getText());
System.out.println();
}
} catch (Exception e){
e.printStackTrace();
}
}
}
Jsoup과 다르게 Selenium은 문법도 아예 달라서 공부하는데 다소 어려움이 있었다.
가장 기본적인 예제이다 근데 나에겐 이것마저도 신기했다. 뭔가 컴퓨터를 내가 제어하고 있다는 생각에...
Comments