Selenium Webdriver для Java автоматизаторов
  • Introduction
  • Selenium Webdriver. Введение
    • WebDriver. Обзор и принцип работы
    • Основные методы Selenium Webdriver API
    • Типы локаторов
    • Ожидания
    • Пример использования Webdriver API
  • Selenium WebDriver. Сложные вопросы.
    • Локаторы. CSS, XPATH, JQUERY.
    • WebDriver API. Сложные взаимодействия.
    • Контроль за ходом теста. Кастомные ожидания, попапы, алерты, Iframes.
    • DDT подход
  • Page Object Pattern. Архитектура тестового проекта.
    • Использование паттерна Page Object.
    • Альтернативные Page Object подходы.
    • Вспомогательные инструменты.
    • Уровни абстракции. Создание кастомных элементов.
    • Архитектура. Основные элементы.
  • Selenium Grid и "headless" браузеры
    • Использование HtmlUnit драйвера в автотестировании
    • "Headless" тестирование с PhantomJS и SlimerJS
    • Grid. Настройка и использование.
  • Selenium Webdriver. Проблемные моменты
    • Вспомогательные инструменты
    • Basic Authentification Window
    • Загрузка файла
    • Отправление файла (upload)
    • Логгирование в Selenium Webdriver
    • Скриншоты элементов и работа с изображением
  • Selenium Webdriver. Тестирование HTML5 веб приложений
    • Автоматизация Canvas элементов.
    • Автоматизация видео плеера.
    • Работа с web storage.
  • Selenium Webdriver. Расширение инструмента
    • Selenium "обертки" и расширения
    • Thucydides
    • Geb
    • Selenide
    • Репортинг
  • Selenium Webdriver. Тестирование клиентской производительности
    • Navigation timing API
    • Browser Mob Proxy
    • DynaTrace
    • HttpWatch
  • Selenium Webdriver. Behavior-Driven Development.
    • Обзор методологии и инструментов на Java.
    • Cucumber JVM + Selenium Webdriver.
    • JBehave + Selenium Webdriver.
  • Selenium Webdriver. Тестирование на мобильных браузерах
    • Обзор инструментов
    • Установка и настройка Appium. Принципы и основы работы с инструментом
    • Запуск тестов на десктоп и мобильных браузерах
  • Облачные сервисы.
    • Обзор рынка облачных сервисов для тестирования.
    • SauceLabs. Услуги и планы.
    • Настройка тестов для запуска в SauceLabs.
    • Использование Sauce Connect и Travis CI.
  • Continuous Integration
    • Что такое Continuous Integration
    • Распространенные CI-серверы
    • Jenkins - установка и настройка
Powered by GitBook
On this page
  1. Selenium WebDriver. Сложные вопросы.

WebDriver API. Сложные взаимодействия.

Selenium WebDriver позволяет имитировать действия пользователя, начиная от простых движений мыши до сложных, перетягивание объекта. Все это позволяет реализовать класс Actions. Так же разработчики позаботились о том, чтобы мы могли создавать цепочку действий, используя этот класс. Рассмотрим некоторые возможности на следующих примерах.

Двойной щелчок на элементе:

@Test
public void testDoubleClick() throws Exception
{
    WebDriver driver = new ChromeDriver();
    driver.get("http://dl.dropbox.com/u/55228056/DoubleClickDemo.html");
    WebElement message = driver.findElement(By.id("message"));

    //Verify color is Blue
    assertEquals("rgb(0, 0, 255)",
    message.getCssValue("background-color").toString());
    Actions builder = new Actions(driver);
    builder.doubleClick(message).build().perform();

    //Verify Color is Yellow
    assertEquals("rgb(255, 255, 0)",
    message.getCssValue("background-color").toString());
    driver.close();
}

Перетягивание объекта:

@Test
public void testDragDrop() {
    driver.get("http://dl.dropbox.com/u/55228056/DragDropDemo.html");
    WebElement source = driver.findElement(By.id("draggable"));
    WebElement target = driver.findElement(By.id("droppable"));

    Actions builder = new Actions(driver);
    builder.dragAndDrop(source, target).perform();
    try
    {
        assertEquals("Dropped!", target.getText());
    } catch (Error e) {
        verificationErrors.append(e.toString());
    }
}

Другие полезные методы

Клик левой кнопкой мыши:

click()
click(WebElement onElement)

Клик с удержанием:

clickAndHold()
clickAndHold(WebElement onElement)

Правый клик:

contextClick()
contextClick(WebElement onElement)

Пример работы с контекстным меню:

Actions builder = new Actions(driver);
builder.contextClick(webElement).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.RETURN).build().perform();

Перетаскивание со смещением:

dragAndDropBy(WebElement source, int xOffset, int yOffset)

Нажатие и удержание клавиши и дальнейшее ее отпускание:

keyDown(Keys theKey) / keyDown(WebElement element, Keys key)
keyUp(Keys theKey) / keyUp(WebElement element, Keys key)

Смещение мыши:

moveByOffset(int xOffset, int yOffset)

Перемещение мыши на элемент:

moveToElement(WebElement toElement)
moveToElement(WebElement toElement, int xOffset, int yOffset)

Отпускание клавиши мыши:

release()
release(WebElement onElement)

//Вариант:
sendKeys(Keys.NULL)

Набор текста на клавиатуре:

sendKeys(java.lang.CharSequence... keysToSend)
sendKeys(WebElement element, java.lang.CharSequence... keysToSend)

Построение цепочки действий:

build()

Выполнение построенной цепочки действий:

perform()
PreviousЛокаторы. CSS, XPATH, JQUERY.NextКонтроль за ходом теста. Кастомные ожидания, попапы, алерты, Iframes.

Last updated 6 years ago