WebDriver 인터페이스는 브라우저를 제어하는 다양한 방법을 제공합니다.
서브 클래스로서 Manage, Navigate, SwitchTo 클래스를 가지고 WebDriver와 서브 클래스의 사용법을 살펴 보겠습니다.
WebDriver 인터페이스 메서드
- get(String url): 주어진 URL 로 이동합니다.
- findElement (By locator) : 주어진 요소를 찾습니다.
WebElement 객체를 반환합니다. - findElements(By locator): 주어진 요소를 모두 찾습니다.
WebElement 객체의 목록을 반환합니다. - getPageSource(): 페이지의 소스 코드를 리턴합니다.
- getCurrentUrl(): 현재 페이지의 URL을 반환합니다.
- getTitle(): 현재 페이지의 제목을 반환합니다.
- getWindowHandle(): 현재의 윈도우의 일의의 식별자를 취득합니다.
- getWindowHandles(): 열려 있는 모든 윈도우의 일의의 식별자를 가져옵니다.
- quit(): 브라우저를 닫고 WebDriver 세션을 종료합니다.
- manage(): 서브 클래스, 브라우저 윈도우, 쿠키, 대기 시간 등을 관리합니다.
- navigate(): 서브 클래스, 브라우저 윈도우내에서 다른 페이지나 URL 로 이동하기 위해서 사용합니다.
- switchTo(): 서브 클래스, 브라우저로 다른 윈도우나 프레임을 전환하기 위해서 사용합니다.
Manage() 클래스의 메소드
deleteAllCookies(): 모든 쿠키를 삭제합니다.
window().maximize(): 브라우저를 최대화합니다.
window().setSize(Dimension(300,500)): 브라우저의 크기를 변경합니다.
timeouts().implicitlyWait(Duration.ofSeconds(10)): 페이지 대기 시간을 10초로 설정합니다.
Navigate 클래스의 메소드
to(String url) : 원하는 URL로 이동합니다.
back(): 이전 페이지로 이동합니다.
forward(): 다음 페이지로 이동합니다.
refresh(): 페이지를 업데이트합니다.
SwitchTo 클래스의 메서드
frame(“frameName”): 지정된 이름 또는 ID를 가진 프레임으로 전환합니다.
window(“windowName”) : 지정된 이름이나 핸들이 있는 창으로 전환합니다.
샘플 소스를 사용하여 사용법을 확인합니다.
import java.time.Duration;
import org.openqa.selenium.By;
import org.openqa.selenium.Dimension;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
public class WebDriverTest {
public static void main(String() args) {
// Chromedriver의 경로를 설정합니다.
System.setProperty("webdriver.chrome.driver", "D:\\chromedriver.exe");
// WebDriver를 생성합니다.
WebDriver driver = new ChromeDriver();
//*** Webdriver 인터페이스
// 주어진 URL로 이동합니다.
driver.get("https://www.google.com");
// 현재 페이지의 소스코드를 출력합니다.
System.out.println(driver.getPageSource());
// 현재 페이지의 URL을 출력합니다.
System.out.println(driver.getCurrentUrl());
// 현재 페이지의 제목을 출력합니다.
System.out.println(driver.getTitle());
// 현재 창의 고유 식별자를 가져 옵니다.
System.out.println(driver.getWindowHandle());
//*** Manage 클래스
// 쿠키를 모두 삭제 합니다.
driver.manage().deleteAllCookies();
// 브라우저를 최대화 시키빈다.
driver.manage().window().maximize();
// 부라우저의 크기를 조정합니다.
driver.manage().window().setSize(new Dimension(300, 500));
// 페이지 대기시간을 10초로 설정합니다.
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
//***Navigate 클래스
// 이전 페이지로 이동합니다.
driver.navigate().back();
// 다음 페이지로 이동합니다.
driver.navigate().forward();
// 페이지를 새로고침합니다.
driver.navigate().refresh();
// 원하는 URL로 이동합니다.
driver.navigate().to("https://heosebi.com");
//***Webdriver 인터페이스
// 브라우저를 닫고 WebdDriver 세션을 종료합니다.
driver.quit();
}
}