Рубрики
Без рубрики

Python Selenium все действия мыши с использованием цепочек действий

Цепочки действий-это способы, предоставляемые Selenium для автоматизации низкоуровневых взаимодействий с веб-сайтом, таких как движения мыши, действия кнопок мыши, нажатие клавиш и взаимодействие с контекстным меню(меню щелчка правой кнопкой мыши).

Автор оригинала: pravallika Bandaru.

Что такое ActionChains? Цепочки действий-это способы, предоставляемые Selenium для автоматизации низкоуровневых взаимодействий с веб-сайтом, таких как движения мыши, действия кнопок мыши, нажатие клавиш и взаимодействие с контекстным меню(меню щелчка правой кнопкой мыши). Эти специальные методы полезны для выполнения более сложных действий, таких как наведение курсора мыши и перетаскивание, что невозможно с помощью прямых действий веб-драйвера.

Используя объект ActionChains, мы вызываем методы, которые последовательно выполняют определенные действия один за другим. selenium training Вызываемые действия помещаются в очередь. При вызове метода performing () события запускаются в том порядке, в котором они поставлены в очередь.

Реализация ActionChains доступна в приведенном ниже пути.

Питон

от селена.webdriver.common.action_chains импорт цепей действий

actionchains(драйвер) # объект цепочки инициализации

Экземпляр WebDriver должен быть передан при создании объекта ActionChains.

Цепочки действий можно использовать в цепочке, добавляя все методы в одну строку.

Питон

Питон

Питон

Питон

.move_to_element(меню)

.нажмите кнопку(подменю)

.выполнить()

Действия могут быть добавлены по одному в очередь, а затем выполнены.

menu.find_element_by_id(“меню”)

подменю.find_element_by_id(“подменю1”)

действия(драйвер)

действия.move_to_element(меню)

действия.нажмите(подменю)

действия.()

В обоих случаях действия выполняются или выполняются одно за другим в порядке их добавления.

Все доступные методы ActionChains ) Щелкает левой кнопкой мыши по заданному элементу.

Параметры

on_element: Элемент, на который нужно нажать. Если ни один элемент не прошел, щелкните левой кнопкой мыши на текущей позиции мыши.

click_and_hold(on_element=Нет) Щелкните и удерживайте нажатой левую кнопку мыши на элементе.

Параметры

on_element: Элемент для мыши вниз. Если ни один элемент не прошел, щелкните по текущей позиции мыши.

context_click(on_element=None) Выполняет контекстный щелчок (щелчок правой кнопкой мыши) по элементу.

Параметры

on_element: Элемент для контекстного щелчка или щелчка правой кнопкой мыши. Если ни один элемент не прошел, щелкните правой кнопкой мыши по текущей позиции мыши.

double_click(on_element=None) Дважды щелкает по элементу.

Параметры

on_element: Элемент, на котором нужно дважды щелкнуть. Если ни один элемент не прошел, дважды щелкните по текущей позиции мыши.

drag_and_drop(источник, цель) Удерживая нажатой левую кнопку мыши на исходном элементе, затем перемещается к целевому элементу и отпускает кнопку мыши.

Параметры

источник: элемент для мыши или элемент для перетаскивания

цель: элемент для наведения мыши или целевой элемент для перетаскивания

Пример

Питон

from_element.find_element_by_id(“источник”)

to_element.find_element_by_id(“цель”)

ActionChains(драйвер)

.drag_and_drop(from_element, to_element)

.выполнить()

drag_and_drop_by_offset(source, xoffset, yoffset) Удерживает левую кнопку мыши на исходном элементе, затем переходит к целевому смещению и отпускает кнопку мыши Подробнее онлайн-обучение selenium .

Параметры

источник: Элемент для мыши.

смещение: смещение X для перемещения.

смещение: смещение Y для перемещения.

key_down(значение,) Отправляет только нажатие клавиши, не отпуская ее. Это используется в основном с клавишами-модификаторами, такими как Control, Alt и Shift.

Параметры

значение: Ключ-модификатор для отправки. Класс Keys определяет все значения.

элемент: Элемент для отправки ключей. Если нет, отправляет ключ к текущему сфокусированному элементу.

Пример, ниже скрипт нажимает ctrl+c

Питон

ActionChains(драйвер)

.key_down(Ключи.КОНТРОЛЬ)

.send_keys(‘c’)

.key_up(Ключи.КОНТРОЛЬ)

.выполнить()

key_up(значение,) Освобождает ключ-модификатор.

Параметры

значение: Ключ-модификатор для отправки. Класс Keys определяет все значения.

элемент: Элемент для отправки ключей. Если элемент не передан, отправляет ключ текущему сфокусированному элементу.

Пример, ниже скрипт нажимает ctrl+v

Питон

ActionChains(драйвер)

.key_down(Ключи.КОНТРОЛЬ)

.send_keys(‘v’)

.key_up(Ключи.КОНТРОЛЬ)

.выполнить()

move_by_offset(xoffset, yoffset) Перемещение мыши на смещение от текущего положения мыши.

Параметры

xoffset: смещение X для перемещения в виде положительного или отрицательного целого числа.

yoffset: смещение Y для перемещения в виде положительного или отрицательного целого числа.

move_to_element(to_element) Перемещение мыши к середине элемента. Это действие помогает нам справиться с выпадающим меню, которое появляется, когда пользователь наводит курсор мыши на элемент или когда пользователь нажимает на элемент.

Параметры

to_element: Веб – элемент для перемещения.

Пример

Питон

menu.find_element_by_id(“все меню”)

ActionChains(драйвер)

.move_to_element(меню)

.выполнить()

WebDriverWait(self.webdriver, 5)

.до тех пор, пока(EC.visibility_of_element_located((By.ID, “домой”)))

home_menu.find_element_by_id(“главная страница”)

home_menu.click()

move_to_element_with_offset(to_element, xoffset, yoffset) Переместите мышь на смещение указанного элемента.

Смещения относятся к верхнему левому углу элемента.

Параметры

to_element: Веб – элемент для перемещения.

смещение: смещение X для перемещения.

смещение: смещение Y для перемещения.

пауза(секунды) Приостановите все действия на заданную продолжительность (в секундах).

Функция perform() Выполняет все сохраненные действия.

отпустите(on_element=None), Отпустив удерживаемую кнопку мыши на элементе.

Параметры

on_element: Элемент для наведения курсора мыши. Если нет, отпустите в текущем положении мыши.

reset_actions() Чтобы очистить все действия, уже сохраненные локально и/или на удаленном конце.

send_keys(keys_to_send) Отправляет ключи текущему сфокусированному элементу.

Параметры

keys_to_send: Ключи для отправки.

send_keys_to_element(элемент, keys_to_send) Отправляет ключи элементу.

Параметры

элемент: Элемент для отправки ключей.

keys_to_send: Ключи для отправки.

Для аргументов метода send_keys и send_keys_to_element константы ключей-модификаторов можно найти в классе “Ключи”.

Общие сценарии Открыть ссылку в новой вкладке Пользователь должен нажать клавишу управления и нажать на ссылку, чтобы открыть ее в новой вкладке браузера. Та же операция может быть написана в Selenium WebDriver следующим образом

Питон

из selenium import webdriver

от селена.webdriver.common.ключи импорт ключей

от селена.webdriver.common.action_chains импорт цепей действий

водитель.Firefox(executable_path=”путь к firefox webdriver”)

водитель.получить(‘https://www.google.com’)

element.find_element_by_link_text(“Конфиденциальность”)

ActionChains(драйвер)

.key_down(Ключи.КОНТРОЛЬ)

.щелкните(элемент)

.key_up(Ключи.КОНТРОЛЬ)

.выполнить()

водитель.()

В случае Mac os

Питон

ActionChains(драйвер) \

.key_down(Ключи.КОМАНДА) \

.щелкните(элемент) \

.key_up(Ключи.КОМАНДА) \

.выполнить()

Пользователь должен нажать клавишу Shift и нажать на ссылку, чтобы открыть ее в новом окне браузера. Та же операция может быть написана в Selenium WebDriver следующим образом

Питон

ActionChains(драйвер) \

.key_down(Ключи.СДВИГ) \

.щелкните(элемент) \

.key_up(Ключи.СДВИГ) \

.выполнить()

Ручка мыши за кадром Python

из selenium import webdriver

от селена.webdriver.common.ключи импорт ключей

от селена.webdriver.common.action_chains импорт цепей действий

водитель.Firefox(executable_path=”путь к драйверу”)

водитель.получить(‘https://www.w3schools.com/howto/howto_css_dropdown.asp’)

element.find_element_by_class_name(‘dropbtn’)

ActionChains(драйвер) \

.move_to_element(элемент) \

.выполнить()

element.find_element_by_link_text(‘Ссылка 1’)

элемент.нажмите кнопку()

водитель.()

Используйте метод pause (), если вам нравится ждать перед каждой операцией. Например, если требуется несколько секунд, чтобы отобразить пункты меню для получения дополнительной информации selenium online training/|.