최대 1 분 소요

Selenium(셀레니움)


Selenium

Selenium은 웹 크롤러를 간편하게 테스트하고 만들기 위한 프로그램으로 C#, java, PHP, Python 등 많은 언어를 지원하고 리눅스, 원도우, 맥등 다양한 환경에서 구동이 가능합니다.

셀리니움 라이브러리 다운로드

https://www.selenium.dev/downloads/

Selenium1_1

라이브러리를 추가해준다.

크롬드라이버 설치

먼저 크롬드라이버 설치 이전에 크롬 버전을 알아야한다.

아래와 같이 들어가면,

Selenium1_2

Selenium1_3

버전을 확인할 수 있다.

이후 링크에서 맞는 드라이버를 다운로드 받아준다.

https://chromedriver.chromium.org/downloads

Selenium1_4

이제 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();
        }

    }
}

Selenium1_5

sendKeys() : 키보드로 입력

submit() : 입력값 제출

click() : 클릭

셀리니움을 더욱 효과적으로 안전하게 사용하기 위해서는 웹 애플리케이션이 실행되는 동안 로딩 시간을 기다려줘야한다. 만약 이부분을 놓치게 되면 아직 코드가 로드되지 않은 상태에서 요소를 찾게되고 없다고 판단되면 예외가 발생되어 중지되기 때문이다.

이 부분은

WebElement webElement = driver.findElement(By.name("q"));
webElement.sendKeys("볼빨간 사춘기 썸탈거야");
webElement.submit();
Thread.sleep(500);

이런식으로 다음 나올 페이지를 기달려줘야한다.