5.2 KiB
参考 selenium 的ActionChains
,本库也提供了自己的ActionChains
。语法更简洁易用,每个动作执行即生效,无须perform()
。
✔ 创建对象
📍 ActionChains
创建动作链对象非常简单,只要把WebPage
对象或ChromiumPage
对象传入即可。动作链只在这个页面上生效。
参数:
page
:WebPage
对象或ChromiumPage
对象
# 创建前先导入
from DrissionPage import WebPage, ActionChains
page = WebPage()
ac = ActionChains(page)
✔ 移动鼠标
📍 move_to()
此方法用于移动鼠标到元素中点,或页面上的某个绝对坐标。可设置偏移量,当带偏移量时,偏移量相对于元素左上角坐标。
参数:
-
ele_or_loc
:元素对象、文本定位符或绝对坐标,坐标为tuple
(int, int) 形式 -
offset_x
:偏移量 x -
offset_y
:偏移量 y
返回:ActionChains
对象自己
ele = page('tag:a')
ac.move_to(ele_or_loc=ele) # 使鼠标移动过到 ele 元素上
📍 move()
此方法用于使鼠标相对当前位置移动若干距离。
参数:
-
offset_x
:偏移量 x -
offset_y
:偏移量 y
返回:ActionChains
对象自己
ac.move(300, 0) # 鼠标向右移动 300 像素
📍 up()
此方法用于使鼠标相对当前位置向上移动若干距离。
参数:
pixel
:移动距离
返回:ActionChains
对象自己
ac.up(50) # 鼠标向上移动 50 像素
📍 down()
此方法用于使鼠标相对当前位置向下移动若干距离。
参数:
pixel
:移动距离
返回:ActionChains
对象自己
📍 left()
此方法用于使鼠标相对当前位置向左移动若干距离。
参数:
pixel
:移动距离
返回:ActionChains
对象自己
📍 right()
此方法用于使鼠标相对当前位置向右移动若干距离。
参数:
pixel
:移动距离
返回:ActionChains
对象自己
✔ 鼠标按键
📍 click()
此方法用于单击鼠标左键,单击前可先移动到元素上。
参数:
on_ele
:ChromiumElement
元素或文本定位符
返回:ActionChains
对象自己
📍 r_click()
此方法用于单击鼠标右键,单击前可先移动到元素上。
参数:
on_ele
:ChromiumElement
元素或文本定位符
返回:ActionChains
对象自己
📍 m_click()
此方法用于单击鼠标中键,单击前可先移动到元素上。
参数:
on_ele
:ChromiumElement
元素或文本定位符
返回:ActionChains
对象自己
📍 hold()
此方法用于按住鼠标左键不放,按住前可先移动到元素上。
参数:
on_ele
:ChromiumElement
元素或文本定位符
返回:ActionChains
对象自己
📍 release()
此方法用于释放鼠标左键,释放前可先移动到元素上。
参数:
on_ele
:ChromiumElement
元素或文本定位符
返回:ActionChains
对象自己
📍 r_hold()
此方法用于按住鼠标右键不放,按住前可先移动到元素上。
参数:
on_ele
:ChromiumElement
元素或文本定位符
返回:ActionChains
对象自己
📍 r_release()
此方法用于释放鼠标右键,释放前可先移动到元素上。
参数:
on_ele
:ChromiumElement
元素或文本定位符
返回:ActionChains
对象自己
📍 m_hold()
此方法用于按住鼠标中键不放,按住前可先移动到元素上。
参数:
on_ele
:ChromiumElement
元素或文本定位符
返回:ActionChains
对象自己
📍 m_release()
此方法用于释放鼠标中键,释放前可先移动到元素上。
参数:
on_ele
:ChromiumElement
元素或文本定位符
返回:ActionChains
对象自己
✔ 滚动滚轮
📍 scroll()
此方法用于滚动鼠标滚轮,滚动前可先移动到元素上。
参数:
delta_x
:滚轮变化值 xdelta_y
:滚轮变化值 yon_ele
:ChromiumElement
元素或文本定位符
返回:ActionChains
对象自己
✔ 键盘按键
📍 key_down()
此方法用于按下键盘按键。
参数:
key
:按键键值,特殊字符见 Keys
返回:ActionChains
对象自己
from DrissionPage.keys import Keys
ac.key_down(Keys.CTRL) # 按下 ctrl 键
📍 key_up()
此方法用于提起键盘按键。
参数:
key
:按键键值,特殊字符见 Keys
返回:ActionChains
对象自己
📍 type()
此方法用于输入一段文本。
参数:
text
:文本字符串
返回:ActionChains
对象自己
✔ 等待
📍 wait()
此方法用于在动作链中插入停顿。
参数:
second
:秒数
返回:ActionChains
对象自己
ac.wait(3) # 停顿 3 秒
✔ 链式操作
以上操作皆能实现链式操作。且最后无需perform()
。
from DrissionPage import ChromiumPage, ActionChains
page = ChromiumPage()
ac = ActionCHains(page)
# 链式操作
ac.move_to('tag:h1').right(30).click().key_down('a').key_up('a')