5.2 KiB
Raw Blame History

参考 selenium 的ActionChains,本库也提供了自己的ActionChains。语法更简洁易用,每个动作执行即生效,无须perform()

✔ 创建对象

📍 ActionChains

创建动作链对象非常简单,只要把WebPage对象或ChromiumPage对象传入即可。动作链只在这个页面上生效。

参数:

  • pageWebPage对象或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_eleChromiumElement元素或文本定位符

返回:ActionChains对象自己

📍 r_click()

此方法用于单击鼠标右键,单击前可先移动到元素上。

参数:

  • on_eleChromiumElement元素或文本定位符

返回:ActionChains对象自己

📍 m_click()

此方法用于单击鼠标中键,单击前可先移动到元素上。

参数:

  • on_eleChromiumElement元素或文本定位符

返回:ActionChains对象自己

📍 hold()

此方法用于按住鼠标左键不放,按住前可先移动到元素上。

参数:

  • on_eleChromiumElement元素或文本定位符

返回:ActionChains对象自己

📍 release()

此方法用于释放鼠标左键,释放前可先移动到元素上。

参数:

  • on_eleChromiumElement元素或文本定位符

返回:ActionChains对象自己

📍 r_hold()

此方法用于按住鼠标右键不放,按住前可先移动到元素上。

参数:

  • on_eleChromiumElement元素或文本定位符

返回:ActionChains对象自己

📍 r_release()

此方法用于释放鼠标右键,释放前可先移动到元素上。

参数:

  • on_eleChromiumElement元素或文本定位符

返回:ActionChains对象自己

📍 m_hold()

此方法用于按住鼠标中键不放,按住前可先移动到元素上。

参数:

  • on_eleChromiumElement元素或文本定位符

返回:ActionChains对象自己

📍 m_release()

此方法用于释放鼠标中键,释放前可先移动到元素上。

参数:

  • on_eleChromiumElement元素或文本定位符

返回:ActionChains对象自己

✔ 滚动滚轮

📍 scroll()

此方法用于滚动鼠标滚轮,滚动前可先移动到元素上。

参数:

  • delta_x:滚轮变化值 x
  • delta_y:滚轮变化值 y
  • on_eleChromiumElement元素或文本定位符

返回: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')