Клацання мишею & Клавіатурна подія: Клас дій у Selenium Webdriver

Зміст:

Anonim

У цьому підручнику ми навчимося обробляти події клавіатури та миші в 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. Дивіться приклад нижче.

Клітина, показана вище, є частиною елемента . Якщо його не навести, його колір - # FFC455 (оранжевий). Після зависання колір клітини стає прозорим. Він стає таким же кольором, як синій фон усього помаранчевого столу.

Крок 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.