У цьому підручнику ми навчимося обробляти події клавіатури та миші в Selenium Webdriver
Клас дії в селені
Клас дій у селені - це вбудована функція, яка надається селеном для обробки подій клавіатури та миші. Він включає різні операції, такі як клацання кількох подій клавішею управління, події перетягування та багато іншого. Ці операції з класу дій виконуються за допомогою розширеного API взаємодії з користувачем у Selenium Webdriver.
Обробка подій клавіатури та миші
Обробка спеціальних подій клавіатури та миші здійснюється за допомогою API розширених взаємодій користувачів . Він містить дії та класи Action , які потрібні під час виконання цих подій. Нижче наведено найбільш часто використовувані події клавіатури та миші, надані класом Action.
Метод | Опис |
---|---|
clickAndHold () | Клацання (не відпускаючи) у поточному місці миші. |
contextClick () | Виконує контекстне клацання в поточному розташуванні миші. (Клацніть правою кнопкою миші) |
подвійне клацання() | Виконує подвійний клацання в поточному розташуванні миші. |
dragAndDrop (джерело, ціль) | Виконує клацання та утримання в місці розташування вихідного елемента, переміщується до розташування цільового елемента, а потім відпускає мишу. Параметри: елемент-джерело для емуляції кнопки вниз на. Target-елемент для переміщення та відпускання миші. |
dragAndDropBy (джерело, зміщення x, зміщення y) | Виконує клацання та утримання в місці розташування вихідного елемента, рухається із заданим зміщенням, а потім відпускає мишу. Параметри : джерело - елемент для емуляції кнопки при. XOffset - зміщення горизонтального переміщення. YOffset - зміщення вертикального переміщення. |
keyDown (ключ модифікатора) | Виконує натискання клавіші-модифікатора. Не відпускає клавішу-модифікатор - подальші взаємодії можуть припускати, що її утримують натиснутою. Параметри : modifier_key - будь-яка з клавіш-модифікаторів (Keys.ALT, Keys.SHIFT або Keys.CONTROL) |
keyUp (модифікатор _key) | Виконує випуск ключа. Параметри : modifier_key - будь-яка з клавіш-модифікаторів (Keys.ALT, Keys.SHIFT або Keys.CONTROL) |
moveByOffset (x-offset, y-offset) | Переміщує мишу з поточного положення (або 0,0) на заданий зсув. Параметри : x-offset - горизонтальний зсув. Негативне значення означає переміщення миші вліво. Y-offset - вертикальний зсув. Негативне значення означає переміщення миші вниз. |
moveToElement (toElement) | Переміщує мишу до середини елемента. Параметри : toElement- елемент, до якого потрібно перейти. |
випуск () | Відпускає натиснуту ліву кнопку миші в поточному місці розташування миші |
sendKeys (onElement, charsequence) | Надсилає на елемент ряд натискань клавіш. Параметри : onElement - елемент, який буде отримувати натискання клавіш, як правило, текстове поле charsequence - будь-яке значення рядка, що представляє послідовність натискань клавіш, що надсилаються |
У наступному прикладі ми будемо використовувати метод moveToElement () для наведення миші на один рядок таблиці Mercury Tours. Дивіться приклад нижче.
Клітина, показана вище, є частиною елемента
Крок 1: Імпорт дії і дії класів.
Крок 2: Примірник нового об'єкта "Дії".
Крок 3: Примірник дії за допомогою об’єкта „Дії” на кроці 2.
У цьому випадку ми будемо використовувати метод moveToElement (), оскільки ми просто збираємося навести курсор миші на посилання "Головна". Метод build () завжди є кінцевим методом, що використовується, так що всі перераховані дії будуть зібрані в один крок.
Крок 4: Використовуйте метод perform () під час виконання об’єкта Action, який ми розробили на кроці 3.
Нижче наведено весь код WebDriver для перевірки кольору тла елемента
пакет newproject;імпорт org.openqa.selenium. *;імпорт org.openqa.selenium.firefox.FirefoxDriver;імпорт org.openqa.selenium.interactions.Action;імпорт org.openqa.selenium.interactions.Actions;публічний клас PG7 {public static void main (String [] args) {Рядок baseUrl = "http://demo.guru99.com/test/newtours/";System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");Драйвер WebDriver = новий FirefoxDriver ();драйвер.get (baseUrl);WebElement link_Home = driver.findElement (By.linkText ("Домашня сторінка"));WebElement td_Home = драйвер.findElement (Автор.xpath ("// html / body / div"+ "/ table / tbody / tr / td"+ "/ table / tbody / tr / td"+ "/ table / tbody / tr / td"+ "/ table / tbody / tr"));Конструктор дій = нові Дії (драйвер);Дія mouseOverHome = конструктор.moveToElement (link_Home).build ();Рядок bgColor = td_Home.getCssValue ("фон-колір");System.out.println ("Перед наведенням: + bgColor);mouseOverHome.perform ();bgColor = td_Home.getCssValue ("фон-колір");System.out.println ("Після наведення: + bgColor);driver.close ();}}
Вихідні дані чітко вказують, що колір фону став прозорим після наведення курсору.
Створення серії різноманітних дій
Ви можете створити серію дій, використовуючи класи Дія та Дії . Тільки не забудьте закрити серію методом build (). Розглянемо зразок коду нижче.
public static void main (String [] args) {String baseUrl = "http://www.facebook.com/";Драйвер WebDriver = новий FirefoxDriver ();драйвер.get (baseUrl);WebElement txtUsername = driver.findElement (By.id ("електронна пошта"));Конструктор дій = нові Дії (драйвер);Action seriesOfActions = конструктор.moveToElement (txtUsername).click ().keyDown (txtUsername, Keys.SHIFT).sendKeys (txtUsername, "привіт").keyUp (txtUsername, Keys.SHIFT).doubleClick (txtUsername).contextClick ().build ();seriesOfActions.perform ();}
Резюме
- Обробка спеціальних подій клавіатури та миші здійснюється за допомогою API AdvancedUserInteractions.
- Часто використовувані події ключових слів та миші - це doubleClick (), keyUp, dragAndDropBy, contextClick & sendKeys.