웹 브라우저의 동작을 자동화하기 위해 설계된 도구
findElement(), click(), sendKeys()등 웹 요소 제어하는 메서드가 많음import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriver;
public class SeleniumTest {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "D:/chromedriver.exe");
WebDriver driver = new ChromeDriver();
try {
driver.get("https://www.example.com");
// 로그인 버튼 클릭
driver.findElement(By.className("lg_local_btn")).click();
Thread.sleep(500);
// 아이디/비밀번호 입력
driver.findElement(By.id("id")).sendKeys("test1234");
driver.findElement(By.id("pw")).sendKeys("password123");
// 로그인 제출
driver.findElement(By.className("btn_global")).submit();
} catch (Exception e) {
e.printStackTrace();
} finally {
driver.quit();
}
}
}
Java 표준 라이브러리에 포함된 도구로 OS 수준에서 키보드와 마우스 이벤트 시뮬레이션
java.awt.Robot 클래스는 화면 좌표 기반mouseMove()import java.awt.*;
import java.awt.event.InputEvent;
Robot robot = new Robot();
robot.delay(2000);
robot.mouseMove(500, 300); // (500, 300) 좌표로 이동
robot.delay(2000);
robot.mousePress(InputEvent.BUTTON1_MASK); // 마우스 클릭
robot.delay(200);
robot.mouseRelease(InputEvent.BUTTON1_MASK); // 클릭 해제
외부 라이브러리가 사용 불가능한 환경이라 어쩔수 없이 Robot 매크로를 사용했다.
하지만, 경량화를 위해 데모나 특수 시스템 작업을 위해 Robot 매크로가 Selenium이 유리한 부분이 있다는 것을 알게 되었다.