выпуск ()
отпустить (on_element) отпустить удерживать кнопку мыши на элементе. Если on_element
равно None
, то отпускается текущая позиция мыши , которая определяется как:
def release(self, on_element=None):
"""
Releasing a held mouse button on an element.
:Args:
- on_element: The element to mouse up.
If None, releases on current mouse position.
"""
if on_element:
self.move_to_element(on_element)
if self._driver.w3c:
self.w3c_actions.pointer_action.release()
self.w3c_actions.key_action.pause()
else:
self._actions.append(lambda: self._driver.execute(Command.MOUSE_UP, {}))
return self
release()
вызывается по умолчанию различными методами реализации ActionChains . Вот некоторые из них:
release()
: отпуск удерживаемой кнопки мыши на элементе.
drag_and_drop(source, target)
: удерживает левую кнопку мыши на элементе-источнике, затем перемещается к целевому элементу и отпускает кнопку мыши.
drag_and_drop_by_offset(source, xoffset, yoffset)
: удерживает левую кнопку мыши на элементе-источнике, затем перемещается к целевому смещению и отпускает кнопку мыши.
click_and_hold ()
click_and_hold () удерживает левую кнопку мыши на элементе.
Итак, вы все правильно поняли, исходный код подтверждает то же самое, что он будет оставаться нажатым бесконечно, пока release()
не будет напрямую вызван или вызван другими методами. Однако могут быть другие действия / события , которые могут привести к тому, что нажатой левой кнопкой мыши будет неявно отпущено . Эти действия / события могут быть результатом любого из HTML DOM Events . События HTML DOM позволяют JavaScript / AjaxCalls регистрировать различные обработчики событий для элементов в документе HTML. Некоторые из наиболее часто встречающихся событий:
- HTML DOM UiEvent : события, которые запускаются из пользовательского интерфейса, принадлежат объекту UiEvent.
- Событие onload : Событие onload происходит, когда объект загружен.
- Событие onresize : Событие onresize наступает при изменении размера окна браузера.
- Событие onscroll : Событие onscroll наступает при прокрутке полосы прокрутки элемента.
- HTML DOM FocusEvent : События, которые происходят, когда элементы получают или теряют фокус, принадлежат объекту FocusEvent.
- Объект события : Все объекты события в DOM основаны на объекте события.
- HTML DOM MouseEvent : события, которые происходят, когда мышь взаимодействует с документом HTML, принадлежат объекту MouseEvent.
- Событие onmousedown : Событие onmousedown наступает, когда пользователь нажимает кнопку мыши над элементом.
- Событие onmouseup : Событие onmouseup возникает, когда пользователь отпускает кнопку мыши над элементом.
- HTML DOM DragEvent : События, которые происходят, когда элементы перетаскиваются и / или удаляются, принадлежат объекту DragEvent.
- Событие ondrag : Событие ondrag наступает при перетаскивании выделенного элемента или текста.
- Событие ondragstart : Событие ondragstart наступает, когда пользователь начинает перетаскивать выделенный элемент или текст.
- HTML DOM TransitionEvent : события, которые происходят при выполнении CSS-перехода, принадлежат объекту TransitionEvent.
Key_Up ()
Метод key_up()
также освобождает клавишу-модификатор . Как пример:
ActionChains(driver).key_down(Keys.CONTROL).send_keys('c').key_up(Keys.CONTROL).perform()
Этот вариант использования
Без какой-либо информации о вашем сценарии использования реализации click_and_hold()
следует отметить, что key_down()
- это метод, который выполняет нажатие клавиши-модификатора и не отпускает клавишу модификатора , и последующие взаимодействия могут предполагать, что удерживается нажатой . Обратите внимание, что ключом-модификатором является , который никогда не выпускается неявно . * key_up (theKey) или send_keys (Keys.NULL) должны быть вызваны для освобождения модификатора.