mirror of
https://gitee.com/g1879/DrissionPage.git
synced 2024-12-10 04:00:23 +08:00
275 lines
5.2 KiB
Markdown
275 lines
5.2 KiB
Markdown
参考 selenium 的`ActionChains`,本库也提供了自己的`ActionChains`。语法更简洁易用,每个动作执行即生效,无须`perform()`。
|
||
|
||
# ✔ 创建对象
|
||
|
||
## 📍 `ActionChains`
|
||
|
||
创建动作链对象非常简单,只要把`WebPage`对象或`ChromiumPage`对象传入即可。动作链只在这个页面上生效。
|
||
|
||
**参数:**
|
||
|
||
- `page`:`WebPage`对象或`ChromiumPage`对象
|
||
|
||
```python
|
||
# 创建前先导入
|
||
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`对象自己
|
||
|
||
```python
|
||
ele = page('tag:a')
|
||
ac.move_to(ele_or_loc=ele) # 使鼠标移动过到 ele 元素上
|
||
```
|
||
|
||
## 📍 `move()`
|
||
|
||
此方法用于使鼠标相对当前位置移动若干距离。
|
||
|
||
**参数:**
|
||
|
||
- `offset_x`:偏移量 x
|
||
|
||
- `offset_y`:偏移量 y
|
||
|
||
**返回:**`ActionChains`对象自己
|
||
|
||
```python
|
||
ac.move(300, 0) # 鼠标向右移动 300 像素
|
||
```
|
||
|
||
## 📍 `up()`
|
||
|
||
此方法用于使鼠标相对当前位置向上移动若干距离。
|
||
|
||
**参数:**
|
||
|
||
- `pixel`:移动距离
|
||
|
||
**返回:**`ActionChains`对象自己
|
||
|
||
```python
|
||
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`:滚轮变化值 x
|
||
- `delta_y`:滚轮变化值 y
|
||
- `on_ele`:`ChromiumElement`元素或文本定位符
|
||
|
||
**返回:**`ActionChains`对象自己
|
||
|
||
# ✔ 键盘按键
|
||
|
||
## 📍 `key_down()`
|
||
|
||
此方法用于按下键盘按键。
|
||
|
||
**参数:**
|
||
|
||
- `key`:按键键值,特殊字符见 Keys
|
||
|
||
**返回:**`ActionChains`对象自己
|
||
|
||
```python
|
||
from DrissionPage.keys import Keys
|
||
|
||
ac.key_down(Keys.CTRL) # 按下 ctrl 键
|
||
```
|
||
|
||
## 📍 `key_up()`
|
||
|
||
此方法用于提起键盘按键。
|
||
|
||
**参数:**
|
||
|
||
- `key`:按键键值,特殊字符见 Keys
|
||
|
||
**返回:**`ActionChains`对象自己
|
||
|
||
## 📍 `type()`
|
||
|
||
此方法用于输入一段文本。
|
||
|
||
**参数:**
|
||
|
||
- `text`:文本字符串
|
||
|
||
**返回:**`ActionChains`对象自己
|
||
|
||
# ✔ 等待
|
||
|
||
## 📍 `wait()`
|
||
|
||
此方法用于在动作链中插入停顿。
|
||
|
||
**参数:**
|
||
|
||
- `second`:秒数
|
||
|
||
**返回:**`ActionChains`对象自己
|
||
|
||
```python
|
||
ac.wait(3) # 停顿 3 秒
|
||
```
|
||
|
||
# ✔ 链式操作
|
||
|
||
以上操作皆能实现链式操作。且最后无需`perform()`。
|
||
|
||
```python
|
||
from DrissionPage import ChromiumPage, ActionChains
|
||
|
||
page = ChromiumPage()
|
||
ac = ActionCHains(page)
|
||
|
||
# 链式操作
|
||
ac.move_to('tag:h1').right(30).click().key_down('a').key_up('a')
|
||
```
|