Вопрос по python, webdriver, selenium, selenium-webdriver – Как навести курсор мыши в Python Webdriver

25

Кажется, это способ сделать hover / mouseover в webdriver, по крайней мере, в Java API:

Actions action = new Actions(driver);
action.moveToElement(element).build().perform();
action.moveByOffset(1, 1).build().perform();

Возможно ли это в API Python? Api docs веб-драйвера для python, похоже, не упоминает ничего подобного. http://selenium.googlecode.com/svn/trunk/docs/api/py/index.html

Как происходит наведение / наведение мыши в веб-драйвере Python?

Ваш Ответ

2   ответа
0

Я думаю, что вы спрашиваете о сценариях, в которых нам нужно нажать на пункт меню выпадающего списка. Мы можем автоматизировать это в Python, используя Selenium.

Чтобы выполнить это действие вручную, сначала нам нужно вызвать выпадающий список меню, удерживая мышь над родительским меню. Затем нажмите на нужное дочернее меню из выпадающего меню.

Используя класс ActionChains в Selenium WebDriver, мы можем выполнить этот шаг так же, как и вручную. Метод описан ниже -

Step 1: Import webdriver module and ActionChains class

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains

Step 2: Open Firefox browser and load URL.

site_url = 'Your URL'
driver = webdriver.Firefox()
driver.get(site_url)

Step 3: Create ActionChains object by passing driver object

action = ActionChains(driver);

Step 4: Find first level menu object in page and move cursor on this object using method ‘move_to_element()’. Method perform() is used to execute the actions that we have built on action object. Do the same for all objects.

firstLevelMenu = driver.find_element_by_id("first_level_menu_id_in_your_web_page")
action.move_to_element(firstLevelMenu).perform()
secondLevelMenu = driver.find_element_by_id("second_level_menu_id_in_your_web_page")
action.move_to_element(secondLevelMenu).perform()

Step 5: Click on the required menu item using method click()

secondLevelMenu.click()

Final block of code is like this:

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains

site_url = 'Your URL'
driver = webdriver.Firefox()
driver.get(site_url)

action = ActionChains(driver);

firstLevelMenu = driver.find_element_by_id("first_level_menu_id_in_your_web_page")
action.move_to_element(firstLevelMenu).perform()
secondLevelMenu = driver.find_element_by_id("second_level_menu_id_in_your_web_page")
action.move_to_element(secondLevelMenu).perform()

secondLevelMenu.click()

Вы можете заменитьdriver.find_element_by_id() в соответствии с вашей работой с любым другим методом find_elemnt, доступным в селене. Надеюсь, это будет полезно для вас.

35
from selenium.webdriver.common.action_chains import ActionChains


def hover(self):
    wd = webdriver_connection.connection
    element = wd.find_element_by_link_text(self.locator)
    hov = ActionChains(wd).move_to_element(element)
    hov.perform()
@nids, нажмите на элемент вне элемента наведения мыши?
Как закрыть мышь над поповер после открытия? Это работает для меня, чтобы открыть курсор мыши при наведении курсора. Но тогда он остается открытым и никогда не закрывается. Я попытался найти другой элемент на странице и использовать move_to_element для перехода к этому другому элементу. Не повезло с этим, хотя!

Похожие вопросы