Управление клавиатурой
В предыдущем посте мы рассмотрели различные стратегии навигации. В этом посте мы увидим, как управлять действиями клавиатуры.
Selenium позволяет нам имитировать действия на клавиатуре, такие как нажатие клавиш или очистка записанного содержимого. Кроме того, мы можем использовать клавиши-модификаторы, такие как CTRL или SHIFT, для выполнения некоторых составных / комбинированных нажатий клавиш с помощью класса ActionChains
.
Цепочки действий
Цепочки действий допускают такие взаимодействия, как движения мыши, действия кнопок мыши, нажатие клавиш и перетаскивание. Когда вы вызываете методы для действий с объектом ActionChains
, действия сохраняются в очереди в объекте ActionChains
. Когда вы вызываете perform
, события запускаются в порядке их постановки в очередь. ActionChains
можно использовать в виде цепочки или поставить в очередь один за другим, а затем выполнять.
Для следующего случая
- Экземпляр
ActionChains
создается путем передачи экземпляра WebDriver. - Действие (move_to_element) добавляется в очередь действий для элемента меню.
- Другое действие (щелчок) добавляется в очередь действий для элемента hidden_submenu.
- Когда вызывается
perform
, выполняется первое добавленное в очередь действие для перехода в главное меню. - Затем выполняется второе добавленное действие, чтобы щелкнуть элемент подменю.
Клавиатура
send_keys
Метод send_keys
вводит последовательность клавиш в элемент. Клавиши-модификаторы доступны из класса Keys
. Он может принимать в качестве параметра строку или ключ из класса Keys
.
В следующем примере поле ввода почты заполняется значением [email protected].
key_down
key_down
используется для имитации нажатия клавиши-модификатора (Ctrl, Alt, Shift) без ее отпускания.
В этом примере следующий код записывается в текстовую область и выбирается комбинацией CTRL+A
.
def foo(): pass
key_up
key_up
используется для имитации нажатия или отпускания клавиши при нажатии клавиши-модификатора методом key_down
.
В следующем примере выполняется поиск «SELENIUM webdriver» в Google. Он использует клавишу SHIFT для записи селена в верхнем регистре.
чистый
Этот метод очищает содержимое редактируемого элемента.
То, что нужно запомнить
- Selenium позволяет нам имитировать действия клавиатуры, такие как нажатие клавиш, использование клавиш-модификаторов, таких как CTRL, SHIFT, или очистка записанного содержимого.
- Клавиши-модификаторы можно использовать с помощью класса
ActionChains
. - Вы можете объединить несколько действий и выполнить их по порядку, вызвав метод
perform
для объектаActionChains
. - Selenium Python api предоставляет методы
send_keys
,key_down
,key_up
иclear
для действий с клавиатуры.
В следующем посте я напишу о возможностях браузера и параметрах передачи в webdriver.
использованная литература
- Https://www.selenium.dev/documentation/en/webdriver/keyboard/
- Https://github.com/SeleniumHQ/selenium/blob/trunk/py/selenium/webdriver/common/action_chains.py
- Https://www.softwaretestingmaterial.com/mouse-and-keyboard-interactions-in-selenium-python/
- Https://www.geeksforgeeks.org/action-chains-in-selenium-python/
Спасибо за уделенное время.