Действия при наведении мыши с использованием класса действий.
Иногда элементы подменю отображаются в DOM только при наведении указателя мыши на главное меню. В этом случае мы сталкиваемся с трудностями при нажатии на элемент подменю. Чтобы выполнять действия при наведении мыши, нам нужно связать все действия, которые мы хотим выполнить, за один раз. Для этого нам нужно заставить драйвер перейти к родительскому элементу, у которого есть дочерние элементы, и щелкнуть дочерний элемент.
Для этого мы используем класс Actions в Selenium WebDriver.
Создаем объект Класс действий путем передачи экземпляра WebDriver. С объектом класса Actions водитель переходит в главное меню, а затем в подменю и нажимает на него.
Давайте рассмотрим несколько сценариев.
Действия при наведении мыши на элемент с использованием класса Actions:< /сильный>
12345 | WebElement ele = driver.findElement(By.xpath(“xpath”));//Создать объект 'action' класса Actions action = new Actions(driver);//Наведите указатель мыши на elementaction.moveToElement(ele).perform( ); |
Действия при наведении курсора мыши на подэлемент с использованием класса действий:
Если мы хотим щелкнуть подэлемент, сначала нам нужно навести указатель мыши на родительский элемент, а затем на подэлемент и щелкнуть его.
12345678910111213 | //Main MenuWebElement mainMenu = driver.findElement(By.linkText(“main_menu_link”));//Создать объект 'действие' класса Actions actions = new Actions(driver);//Для наведения курсора на главное менюactions.moveToElement(mainMenu ); //Sub MenuWebElement subMenu = driver.findElement(By.linkText(“sub_menu_link”));//Для наведения курсора на подменюactions.moveToElement(subMenu);//метод build() используется для компиляции всех действий в одно действие .click().build().perform(); |
Или
123456< td class=crayon-code>//Main MenuWebElement mainMenu = driver.findElement(By.linkText(“main_menu_link”));//Создать объект 'action' класса Actions Actions action = new Actions(driver);//перейти к главное меню, а затем подменю и щелкнуть по нему с помощью объекта класса Action.moveToElement(mainMenu).moveToElement(driver.findElement(By.linkText(“sub_menu_link”))).click().build().perform( ); |
Если вы не являетесь постоянным читателем моего блога, я настоятельно рекомендую вам подписаться на бесплатную рассылку новостей по электронной почте, используя ссылку ниже.
TAG: qa