В този урок ще се научим да работим със събитие за клавиатура и мишка в Selenium Webdriver
Екшън клас в селен
Action Class в Selenium е вградена функция, предоставена от селена за обработка на събития от клавиатурата и мишката. Той включва различни операции като кликване на множество събития чрез контролен бутон, събития с плъзгане и пускане и много други. Тези операции от класа на действията се извършват с помощта на разширения API за взаимодействие с потребителя в Selenium Webdriver.
Работа със събития с клавиатура и мишка
Обработката на специални събития от клавиатурата и мишката се извършва с помощта на API за разширено взаимодействие на потребителите . Той съдържа действията и класовете Action , които са необходими при изпълнението на тези събития. По-долу са най-често използваните събития от клавиатурата и мишката, предоставени от класа Action.
Метод | Описание |
---|---|
clickAndHold () | Кликвания (без освобождаване) в текущото местоположение на мишката. |
contextClick () | Извършва контекстно щракване в текущото местоположение на мишката. (Щракнете с десния бутон на мишката) |
кликнете два пъти() | Извършва двукратно щракване върху текущото местоположение на мишката. |
dragAndDrop (източник, цел) | Извършва щракване и задържане в местоположението на изходния елемент, придвижва се до местоположението на целевия елемент, след което освобождава мишката. Параметри: изходен елемент за емулиране на бутона надолу при |
dragAndDropBy (източник, x-offset, y-offset) | Извършва щракване и задържане в местоположението на изходния елемент, премества се с дадено отместване, след което освобождава мишката. Параметри : източник - елемент за емулиране на бутон надолу при. XOffset - отместване на хоризонтално преместване. |
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: Инстанцирайте действие, като използвате обекта Action в стъпка 2.
В този случай ще използваме метода moveToElement (), защото просто ще преминем с мишката върху връзката "Начало". Методът build () винаги е крайният използван метод, така че всички изброени действия ще бъдат компилирани в една стъпка.
Стъпка 4: Използвайте метода perform (), когато изпълнявате обекта Action, проектиран в Стъпка 3.
По-долу е даден целият код на WebDriver, за да проверите цвета на фона на елемента
пакет новпроект;внос org.openqa.selenium. *;импортиране на org.openqa.selenium.firefox.FirefoxDriver;внос org.openqa.selenium.interactions.Action;внос org.openqa.selenium.interactions.Actions;публичен клас PG7 {публична статична void main (String [] args) {String 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"+ "/ таблица / 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 ();}}
Резултатът по-долу ясно посочва, че цветът на фона е станал прозрачен след преминаване с мишката.
Изграждане на поредица от множество действия
Можете да изградите поредица от действия, като използвате класовете Action и Action . Само не забравяйте да затворите поредицата с метода build (). Помислете за примерния код по-долу.
публична статична void main (String [] args) {String baseUrl = "http://www.facebook.com/";Драйвер за WebDriver = нов FirefoxDriver ();driver.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.