Основной интерфейс для управления браузером. Содержит ключевые методы:
void get(String url);
String getCurrentUrl();
String getTitle();
WebElement findElement(By by);
List<WebElement> findElements(By by);
void quit();
Использование:
WebDriver driver = new ChromeDriver();
driver.get("https://example.com");
Представляет элемент на веб-странице. Основные методы:
void click();
void sendKeys(CharSequence... keysToSend);
String getText();
String getAttribute(String name);
Пример:
WebElement search = driver.findElement(By.name("q"));
search.sendKeys("Selenium");
Локатор элементов (стратегии поиска). Методы:
static By id(String id);
static By className(String className);
static By xpath(String xpathExpression);
Использование:
By submitLocator = By.cssSelector("button.submit");
Создание скриншотов. Один метод:
<T extends OutputType<T>> T getScreenshotAs(OutputType<T> outputType);
Пример:
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
Выполнение JavaScript в контексте браузера:
Object executeScript(String script, Object... args);
Object executeAsyncScript(String script, Object... args);
Применение:
((JavascriptExecutor)driver).executeScript("window.scrollBy(0,500)");
Работа с алертами:
void accept();
void dismiss();
String getText();
void sendKeys(String keysToSend);
Использование:
Alert alert = driver.switchTo().alert();
alert.accept();
Базовый интерфейс для поиска элементов (родитель WebDriver и WebElement):
WebElement findElement(By by);
List<WebElement> findElements(By by);
Настройка возможностей браузера:
String getBrowserName();
Platform getPlatform();
Object getCapability(String capabilityName);
Пример:
Capabilities caps = ((RemoteWebDriver)driver).getCapabilities();
String browserVersion = caps.getVersion();
Управление окнами браузера:
void maximize();
void fullscreen();
Point getPosition();
Dimension getSize();
Использование:
driver.manage().window().maximize();
Настройка временных ожиданий:
Timeouts implicitlyWait(long time, TimeUnit unit);
Timeouts pageLoadTimeout(long time, TimeUnit unit);
Timeouts setScriptTimeout(long time, TimeUnit unit);
Пример:
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
Одиночное действие пользователя:
void perform();
Устаревший интерфейс локаторов (в новых версиях используют By)
Проверка возможностей драйвера:
Capabilities getCapabilities();
Профессиональный совет: Для эффективной работы с Selenium изучите не только интерфейсы, но и их основные реализации. Например, ChromeDriver реализует WebDriver, а RemoteWebElement реализует WebElement. Это поможет глубже понимать архитектуру Selenium.