Щелчок мышью & Событие клавиатуры: класс действий в Selenium Webdriver

Содержание:

Anonim

В этом руководстве мы научимся обрабатывать события клавиатуры и мыши в Selenium Webdriver.

Класс действия в селене

Класс действий в Selenium - это встроенная функция, предоставляемая селеном для обработки событий клавиатуры и мыши. Он включает в себя различные операции, такие как нажатие нескольких событий с помощью клавиши управления, события перетаскивания и многое другое. Эти операции из класса действий выполняются с использованием расширенного API взаимодействия с пользователем в Selenium Webdriver.

Обработка событий клавиатуры и мыши

Обработка специальных событий клавиатуры и мыши выполняется с помощью API расширенного взаимодействия с пользователем . Он содержит действие и действия классов, которые необходимы при выполнении этих мероприятий. Ниже приведены наиболее часто используемые события клавиатуры и мыши, предоставляемые классом Actions.

Методика Описание
нажмите и удерживайте() Щелкает (не отпуская) в текущем местоположении мыши.
contextClick () Выполняет контекстный щелчок в текущем местоположении мыши. (Действие правой кнопкой мыши)
двойной щелчок() Выполняет двойной щелчок в текущем местоположении мыши.
dragAndDrop (источник, цель) Выполняет щелчок и удерживание в местоположении исходного элемента, перемещается в местоположение целевого элемента, затем отпускает мышь. Параметры: элемент-источник для имитации нажатия кнопки в точке. Элемент-элемента для перемещения и отпускания мыши.
dragAndDropBy (источник, смещение по оси x, смещение по оси Y) Выполняет щелчок и удерживание в месте расположения исходного элемента, перемещается на заданное смещение, затем отпускает мышь. Параметры : source - элемент для имитации нажатия кнопки. XOffset - смещение горизонтального перемещения. YOffset - смещение вертикального перемещения.
keyDown (modifier_key) Выполняет нажатие клавиши-модификатора. Не отпускает клавишу-модификатор - последующие взаимодействия могут предполагать, что она удерживается нажатой. Параметры : modifier_key - любая из клавиш-модификаторов (Keys.ALT, Keys.SHIFT или Keys.CONTROL)
keyUp (модификатор _key) Выполняет ключевой релиз. Параметры : modifier_key - любая из клавиш-модификаторов (Keys.ALT, Keys.SHIFT или Keys.CONTROL)
moveByOffset (смещение по оси x, смещение по оси Y) Перемещает мышь из текущей позиции (или 0,0) на заданное смещение. Параметры : x-offset- горизонтальное смещение. Отрицательное значение означает перемещение мыши влево. Y-смещение-вертикальное смещение. Отрицательное значение означает перемещение мыши вниз.
moveToElement (toElement) Перемещает мышь к середине элемента. Параметры : toElement- элемент, к которому нужно перейти.
релиз() Отпускает нажатую левую кнопку мыши в текущем положении мыши
sendKeys (onElement, charsequence) Посылает серию нажатий клавиш на элемент. Параметры : onElement - элемент, который будет получать нажатия клавиш, обычно текстовое поле; charsequence - любое строковое значение, представляющее последовательность нажатий клавиш для отправки.

В следующем примере мы будем использовать метод moveToElement () для наведения указателя мыши на одну строку таблицы Mercury Tours. См. Пример ниже.

Показанная выше ячейка является частью элемента . Если не зависать, его цвет # FFC455 (оранжевый). После наведения цвет ячейки становится прозрачным. Он становится того же цвета, что и синий фон всей оранжевой таблицы.

Шаг 1. Импортируйте классы Actions и Action .

Шаг 2: Создайте экземпляр нового объекта Действия.

Шаг 3. Создайте экземпляр Action, используя объект Actions на шаге 2.

В этом случае мы собираемся использовать метод moveToElement (), потому что мы просто наведем курсор мыши на ссылку «Главная». Метод build () всегда является последним используемым методом, поэтому все перечисленные действия будут скомпилированы в один шаг.

Шаг 4: Используйте метод perform () при выполнении объекта Action, который мы разработали на шаге 3.

Ниже приведен весь код WebDriver для проверки цвета фона элемента до и после наведения указателя мыши.

пакет newproject;import org.openqa.selenium. *;import org.openqa.selenium.firefox.FirefoxDriver;import org.openqa.selenium.interactions.Action;импортировать org.openqa.selenium.interactions.Actions;public class PG7 {public static void main (String [] args) {Строка baseUrl = "http://demo.guru99.com/test/newtours/";System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");Драйвер WebDriver = новый FirefoxDriver ();driver.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 = builder.moveToElement (link_Home).строить();Строка bgColor = td_Home.getCssValue ("цвет фона");System.out.println ("Перед наведением: + bgColor);mouseOverHome.perform ();bgColor = td_Home.getCssValue ("цвет фона");System.out.println ("После наведения: + bgColor);driver.close ();}}

В выводе ниже четко указано, что цвет фона стал прозрачным после наведения указателя мыши.

Создание серии множественных действий

Вы можете создать серию действий, используя классы Action и Actions . Просто не забудьте закрыть серию с помощью метода build (). Рассмотрим пример кода ниже.

public static void main (String [] args) {Строка baseUrl = "http://www.facebook.com/";Драйвер WebDriver = новый FirefoxDriver ();driver.get (baseUrl);WebElement txtUsername = driver.findElement (By.id ("электронная почта"));Конструктор действий = новые действия (драйвер);Серия действийOfActions = builder.moveToElement (txtUsername).click ().keyDown (txtUsername, Keys.SHIFT)..sendKeys (txtUsername, "привет").keyUp (txtUsername, Keys.SHIFT).doubleClick (txtUsername).contextClick ().строить();seriesOfActions.perform ();}

Резюме

  • Обработка специальных событий клавиатуры и мыши выполняется с помощью API AdvancedUserInteractions.
  • Часто используемые ключевые слова и события мыши: doubleClick (), keyUp, dragAndDropBy, contextClick и sendKeys.