java day17
Selenium(셀레니움)
Selenium
Selenium은 웹 크롤러를 간편하게 테스트하고 만들기 위한 프로그램으로 C#, java, PHP, Python 등 많은 언어를 지원하고 리눅스, 원도우, 맥등 다양한 환경에서 구동이 가능합니다.
셀리니움 라이브러리 다운로드
https://www.selenium.dev/downloads/
라이브러리를 추가해준다.
크롬드라이버 설치
먼저 크롬드라이버 설치 이전에 크롬 버전을 알아야한다.
아래와 같이 들어가면,
버전을 확인할 수 있다.
이후 링크에서 맞는 드라이버를 다운로드 받아준다.
https://chromedriver.chromium.org/downloads
이제 Selenium를 통해 구글 첫화면에서 원하는 단어를 입력하는 코드를 작성해보자
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
public class Selenium1 {
public static void main(String[] args) {
String url = "https://www.google.co.kr/";
String DRIVER_ID = "webdriver.chrome.driver";
String DRIVER_PATH = "C:\\aiclass\\JSP\\chromedriver.exe";
System.setProperty(DRIVER_ID, DRIVER_PATH);
WebDriver driver = new ChromeDriver();
try{
driver.get(url);
WebElement webElement = driver.findElement(By.name("q"));
webElement.sendKeys("볼빨간 사춘기 썸탈거야");
// webElement.submit();
// 윗 코드 주석을 해제하면 검색
}catch (Exception e){
e.printStackTrace();
}
}
}
sendKeys() : 키보드로 입력
submit() : 입력값 제출
click() : 클릭
셀리니움을 더욱 효과적으로 안전하게 사용하기 위해서는 웹 애플리케이션이 실행되는 동안 로딩 시간을 기다려줘야한다. 만약 이부분을 놓치게 되면 아직 코드가 로드되지 않은 상태에서 요소를 찾게되고 없다고 판단되면 예외가 발생되어 중지되기 때문이다.
이 부분은
WebElement webElement = driver.findElement(By.name("q"));
webElement.sendKeys("볼빨간 사춘기 썸탈거야");
webElement.submit();
Thread.sleep(500);
이런식으로 다음 나올 페이지를 기달려줘야한다.