diff --git a/docs/WebPage使用方法/3.10动作链.md b/docs/WebPage使用方法/3.10动作链.md
index b89a64b..32ee6ce 100644
--- a/docs/WebPage使用方法/3.10动作链.md
+++ b/docs/WebPage使用方法/3.10动作链.md
@@ -56,7 +56,7 @@ ac = ActionChains(page)
| `offset_y` | `int` | 0 | y 轴偏移量,向下为正,向上为负 |
| 返回类型 | 说明 |
-| -------------- | ------- |
+|:--------------:| ------- |
| `ActionChains` | 动作链对象本身 |
**示例:** 使鼠标移动到 ele 元素上
@@ -76,7 +76,7 @@ ac.move_to(ele_or_loc=ele)
| `offset_y` | `int` | 0 | y 轴偏移量,向下为正,向上为负 |
| 返回类型 | 说明 |
-| -------------- | ------- |
+|:--------------:| ------- |
| `ActionChains` | 动作链对象本身 |
**示例:** 鼠标向右移动 300 像素
@@ -94,7 +94,7 @@ ac.move(300, 0)
| `pixel` | `int` | 无 | 鼠标移动的像素值 |
| 返回类型 | 说明 |
-| -------------- | ------- |
+|:--------------:| ------- |
| `ActionChains` | 动作链对象本身 |
**示例:** 鼠标向上移动 50 像素
@@ -112,7 +112,7 @@ ac.up(50)
| `pixel` | `int` | 无 | 鼠标移动的像素值 |
| 返回类型 | 说明 |
-| -------------- | ------- |
+|:--------------:| ------- |
| `ActionChains` | 动作链对象本身 |
**示例:**
@@ -130,7 +130,7 @@ ac.down(50)
| `pixel` | `int` | 无 | 鼠标移动的像素值 |
| 返回类型 | 说明 |
-| -------------- | ------- |
+|:--------------:| ------- |
| `ActionChains` | 动作链对象本身 |
**示例:**
@@ -148,7 +148,7 @@ ac.left(50)
| `pixel` | `int` | 无 | 鼠标移动的像素值 |
| 返回类型 | 说明 |
-| -------------- | ------- |
+|:--------------:| ------- |
| `ActionChains` | 动作链对象本身 |
**示例:**
@@ -168,7 +168,7 @@ ac.right(50)
| `on_ele` | `ChromiumElement`
`str` | `None` | 要点击的元素对象或文本定位符 |
| 返回类型 | 说明 |
-| -------------- | ------- |
+|:--------------:| ------- |
| `ActionChains` | 动作链对象本身 |
**示例:**
@@ -186,7 +186,7 @@ ac.click('#div1')
| `on_ele` | `ChromiumElement`
`str` | `None` | 要点击的元素对象或文本定位符 |
| 返回类型 | 说明 |
-| -------------- | ------- |
+|:--------------:| ------- |
| `ActionChains` | 动作链对象本身 |
**示例:**
@@ -204,7 +204,7 @@ ac.r_click('#div1')
| `on_ele` | `ChromiumElement`
`str` | `None` | 要点击的元素对象或文本定位符 |
| 返回类型 | 说明 |
-| -------------- | ------- |
+|:--------------:| ------- |
| `ActionChains` | 动作链对象本身 |
**示例:**
@@ -222,7 +222,7 @@ ac.m_click('#div1')
| `on_ele` | `ChromiumElement`
`str` | `None` | 要按住的元素对象或文本定位符 |
| 返回类型 | 说明 |
-| -------------- | ------- |
+|:--------------:| ------- |
| `ActionChains` | 动作链对象本身 |
**示例:**
@@ -240,7 +240,7 @@ ac.hold('#div1')
| `on_ele` | `ChromiumElement`
`str` | `None` | 要释放的元素对象或文本定位符 |
| 返回类型 | 说明 |
-| -------------- | ------- |
+|:--------------:| ------- |
| `ActionChains` | 动作链对象本身 |
**示例:** 移动到某元素上然后释放鼠标左键
@@ -258,7 +258,7 @@ ac.release('#div1')
| `on_ele` | `ChromiumElement`
`str` | `None` | 要按住的元素对象或文本定位符 |
| 返回类型 | 说明 |
-| -------------- | ------- |
+|:--------------:| ------- |
| `ActionChains` | 动作链对象本身 |
## 📍 `r_release()`
@@ -270,7 +270,7 @@ ac.release('#div1')
| `on_ele` | `ChromiumElement`
`str` | `None` | 要释放的元素对象或文本定位符 |
| 返回类型 | 说明 |
-| -------------- | ------- |
+|:--------------:| ------- |
| `ActionChains` | 动作链对象本身 |
## 📍 `m_hold()`
@@ -282,7 +282,7 @@ ac.release('#div1')
| `on_ele` | `ChromiumElement`
`str` | `None` | 要按住的元素对象或文本定位符 |
| 返回类型 | 说明 |
-| -------------- | ------- |
+|:--------------:| ------- |
| `ActionChains` | 动作链对象本身 |
## 📍 `m_release()`
@@ -294,7 +294,7 @@ ac.release('#div1')
| `on_ele` | `ChromiumElement`
`str` | `None` | 要释放的元素对象或文本定位符 |
| 类型 | 说明 |
-| -------------- | ------- |
+|:--------------:| ------- |
| `ActionChains` | 动作链对象本身 |
# ✔ 滚动滚轮
@@ -310,7 +310,7 @@ ac.release('#div1')
| `on_ele` | `ChromiumElement`
`str` | `None` | 要滚动的元素对象或文本定位符 |
| 返回类型 | 说明 |
-| -------------- | ------- |
+|:--------------:| ------- |
| `ActionChains` | 动作链对象本身 |
# ✔ 键盘按键
@@ -324,7 +324,7 @@ ac.release('#div1')
| `key` | `str` | 无 | 按键键值 |
| 返回类型 | 说明 |
-| -------------- | ------- |
+|:--------------:| ------- |
| `ActionChains` | 动作链对象本身 |
**示例:** 按下 ctrl 键
@@ -344,7 +344,7 @@ ac.key_down(Keys.CTRL)
| `key` | `str` | 无 | 按键键值 |
| 返回类型 | 说明 |
-| -------------- | ------- |
+|:--------------:| ------- |
| `ActionChains` | 动作链对象本身 |
**示例:** 提起 ctrl 键
@@ -364,7 +364,7 @@ ac.key_up(Keys.CTRL)
| `text` | `str` | 无 | 要输入的文本 |
| 返回类型 | 说明 |
-| -------------- | ------- |
+|:--------------:| ------- |
| `ActionChains` | 动作链对象本身 |
**示例:**
@@ -384,7 +384,7 @@ ac.type('text')
| `second` | `float` | 无 | 等待秒数 |
| 返回类型 | 说明 |
-| -------------- | ------- |
+|:--------------:| ------- |
| `ActionChains` | 动作链对象本身 |
**示例:** 停顿 3 秒
diff --git a/docs/WebPage使用方法/3.2访问网页.md b/docs/WebPage使用方法/3.2访问网页.md
index a79ab98..1753e3d 100644
--- a/docs/WebPage使用方法/3.2访问网页.md
+++ b/docs/WebPage使用方法/3.2访问网页.md
@@ -1,24 +1,27 @@
-本节介绍如果访问网页。
+本节介绍如何访问网页。
-# ✔️ d 模式
+# ✔️ 浏览器访问网页
-d 模式下使用`get()`方法访问网页。
+`ChromiumPage`和`WebPage`的 d 模式用于控制浏览器,使用`get()`方法访问网页。
## 📍 `get()`方法
该方法用于跳转到一个网址。
当连接失败时,程序默认重试 3 次,每次间隔 2 秒,可以通过参数设置重试次数和间隔。
-d 模式下根据浏览器的状态,还可以通过重写`check_page()`方法实现自定义检查方式。
-**参数:**
+| 参数名称 | 类型 | 默认值 | 说明 |
+|:-------------:|:-------:|:-------:| --------------------------- |
+| `url` | `str` | 无 | 目标url |
+| `show_errmsg` | `bool` | `False` | 连接出错时是否显示和抛出异常 |
+| `retry` | `int` | `None` | 重试次数,为`None`时使用页面参数,默认 3 |
+| `interval` | `float` | `None` | 重试间隔(秒),为`None`时使用页面参数,默认 2 |
+| `timeout` | `float` | `None` | 加载超时时间(秒) |
-- `url`:目标 url
-- `show_errmsg`:是否显示和抛出异常。默认不抛出,连接错误会返回`None`
-- `retry`:重试次数,与页面对象的设置一致,默认 3 次
-- `interval`:重试间隔(秒),与页面对象的设置一致,默认 2 秒
-- `timeout`:连接超时时间(秒)
+| 返回类型 | 说明 |
+|:------:| ----- |
+| `bool` | 否连接成功 |
-**返回:**`bool`类型,表示是否连接成功
+**示例:**
```python
from DrissionPage import WebPage
@@ -29,7 +32,7 @@ page.get('https://www.baidu.com')
## 📍 设置超时时间和重试参数
-网络不稳定的时候访问页面不一定成功,`get()`方法内置了超时和重试功能。通过`retry`、`interval`、`timeout`三个参数进行设置。
+网络不稳定时访问页面不一定成功,`get()`方法内置了超时和重试功能。通过`retry`、`interval`、`timeout`三个参数进行设置。
其中,如不指定`timeout`参数,该参数会使用`WebPage`的`timeouts`属性的`page_load`参数中的值。
```python
@@ -58,27 +61,29 @@ page = WebPage()
page.set_page_load_strategy()
```
-# ✔️ s 模式
+# ✔️ 数据包访问网页
-s 模式基于 requests,因此可使用 requests 内置的所有请求方式,包括`get()`、`post()`、`head()`、`options()`、`put()`、`patch()`、`delete()`
-。不过本库目前只对`get()`和`post()`做了封装和优化,其余方式可通过调用`WebPage`内置的`Session`对象使用。
+`SessionPage`和`WebPage`的 s 模式基于 requests,因此可使用 requests 内置的所有请求方式,包括`get()`、`post()`、`head()`、`options()`、`put()`、`patch()`、`delete()`
+。不过本库目前只对`get()`和`post()`做了封装和优化,其余方式可通过调用页面对象内置的`Session`对象调用。
## 📍 `get()`方法
`get()`方法使用语法与 requests 的`get()`方法一致,在此基础上增加了重试设置参数。
-参数:
+| 参数名称 | 类型 | 默认值 | 说明 |
+|:-------------:|:-------:|:-------:| --------------------------- |
+| `url` | `str` | 无 | 目标url |
+| `show_errmsg` | `bool` | `False` | 连接出错时是否显示和抛出异常 |
+| `retry` | `int` | `None` | 重试次数,为`None`时使用页面参数,默认 3 |
+| `interval` | `float` | `None` | 重试间隔(秒),为`None`时使用页面参数,默认 2 |
+| `timeout` | `float` | `None` | 加载超时时间(秒) |
+| `**kwargs` | - | `None` | 连接所需其它参数,具体见 requests 用法 |
-- `url`:目标 url
-- `show_errmsg`:是否显示和抛出异常,默认不抛出,连接错误会返回`None`
-- `retry`:重试次数,与页面对象的设置一致,默认 3 次
-- `interval`:重试间隔(秒),与页面对象的设置一致,默认 2 秒
-- `timeout`:连接超时时间(秒)
-- `**kwargs`:连接参数,具体见 requests 用法
+| 返回类型 | 说明 |
+|:------:| ----- |
+| `bool` | 否连接成功 |
-返回:`bool`类型,表示是否连接成功,根据`Response`对象的`status_code`参数决定
-
-s 模式的`**kwargs`参数与 requests 中该参数使用方法一致,但有一个特点,如果该参数中设置了某一项(如`headers`),该项中的每个项会覆盖从配置中读取的同名项,而不会整个覆盖。
+`**kwargs`参数与 requests 中该参数使用方法一致,但有一个特点,如果该参数中设置了某一项(如`headers`),该项中的每个项会覆盖从配置中读取的同名项,而不会整个覆盖。
就是说,如果想继续使用配置中的`headers`信息,而只想修改其中一项,只需要传入该项的值即可。这样可以简化代码逻辑。
与 requests 不一样,`get()`方法不返回`Response`对象以获取结果,处理返回结果的方式详见后面章节。
@@ -105,15 +110,20 @@ page.get(url, headers=headers, cookies=cookies, proxies=proxies)
此方法是用 post 方式请求页面。用法与`get()`一致。调用时,`WebPage`对象会自动切换到 s 模式。
-参数:
+| 参数名称 | 类型 | 默认值 | 说明 |
+|:-------------:|:---------------:|:-------:| --------------------------- |
+| `url` | `str` | 无 | 目标url |
+| `data` | `dict`
`str` | `None` | 提交的数据 |
+| `json` | `dict`
`str` | `None` | 提交的数据 |
+| `show_errmsg` | `bool` | `False` | 连接出错时是否显示和抛出异常 |
+| `retry` | `int` | `None` | 重试次数,为`None`时使用页面参数,默认 3 |
+| `interval` | `float` | `None` | 重试间隔(秒),为`None`时使用页面参数,默认 2 |
+| `timeout` | `float` | `None` | 加载超时时间(秒) |
+| `**kwargs` | - | `None` | 连接所需其它参数,具体见 requests 用法 |
-- `url`:目标 url
-- `data`:提交的数据,可以是`dict`或`str`类型
-- `json`:提交的数据,可以是`dict`或`str`类型
-- `show_errmsg`:是否显示和抛出异常,默认不抛出,连接错误会返回`None`
-- `retry`:重试次数,与页面对象的设置一致,默认 3 次
-- `interval`:重试间隔(秒),与页面对象的设置一致,默认 2 秒
-- `**kwargs`:连接参数,具体见 requests 用法
+| 返回类型 | 说明 |
+|:------:| ----- |
+| `bool` | 否连接成功 |
```python
from DrissionPage import WebPage
diff --git a/docs/WebPage使用方法/3.3查找元素.md b/docs/WebPage使用方法/3.3查找元素.md
index 2b1a44d..4269d0d 100644
--- a/docs/WebPage使用方法/3.3查找元素.md
+++ b/docs/WebPage使用方法/3.3查找元素.md
@@ -9,14 +9,16 @@
- 根据 DOM 结构相对定位
- 根据页面布局位置相对定位
-d 模式的元素还有专门用于处理 shadow dom 的`shadow_root`属性。获取到的元素可继续用这些方法获取后代元素,使用方法和普通元素一致。
+浏览器的元素还有专门用于处理 shadow dom 的`shadow_root`属性。获取到的元素可继续用这些方法获取后代元素,使用方法和普通元素一致。
# ✔️ 示例
-先看一些示例,感性认识一下,后面在详细讲解用法。
+先看一些示例,后面在详细讲解用法。
## 📍 简单示例
+假设有这样一个页面:
+
```html