diff --git a/DrissionPage/action_chains.py b/DrissionPage/action_chains.py
index 5f6df7a..a9f5a71 100644
--- a/DrissionPage/action_chains.py
+++ b/DrissionPage/action_chains.py
@@ -196,19 +196,31 @@ class ActionChains:
         return self
 
     def up(self, pixel):
-        """鼠标向上移动若干像素"""
+        """鼠标向上移动若干像素            \n
+        :param pixel: 鼠标移动的像素值
+        :return: self
+        """
         return self.move(0, -pixel)
 
     def down(self, pixel):
-        """鼠标向下移动若干像素"""
+        """鼠标向下移动若干像素           \n
+        :param pixel: 鼠标移动的像素值
+        :return: self
+        """
         return self.move(0, pixel)
 
     def left(self, pixel):
-        """鼠标向左移动若干像素"""
+        """鼠标向左移动若干像素           \n
+        :param pixel: 鼠标移动的像素值
+        :return: self
+        """
         return self.move(-pixel, 0)
 
     def right(self, pixel):
-        """鼠标向右移动若干像素"""
+        """鼠标向右移动若干像素           \n
+        :param pixel: 鼠标移动的像素值
+        :return: self
+        """
         return self.move(pixel, 0)
 
     def key_down(self, key):
diff --git a/DrissionPage/base.pyi b/DrissionPage/base.pyi
index ef7bb57..1f12e80 100644
--- a/DrissionPage/base.pyi
+++ b/DrissionPage/base.pyi
@@ -71,50 +71,50 @@ class DrissionElement(BaseElement):
 
     def texts(self, text_node_only: bool = False) -> list: ...
 
-    def parent(self, level_or_loc: Union[tuple, str, int] = 1) -> Union['DrissionElement', None]: ...
+    def parent(self, level_or_loc: Union[tuple, str, int] = 1) -> Union[DrissionElement, None]: ...
 
     def prev(self,
              index: int = 1,
              filter_loc: Union[tuple, str] = '',
-             timeout: float = 0) -> Union['DrissionElement', str, None]: ...
+             timeout: float = 0) -> Union[DrissionElement, str, None]: ...
 
     def next(self,
              index: int = 1,
              filter_loc: Union[tuple, str] = '',
-             timeout: float = 0) -> Union['DrissionElement', str, None]: ...
+             timeout: float = 0) -> Union[DrissionElement, str, None]: ...
 
     def before(self,
                index: int = 1,
                filter_loc: Union[tuple, str] = '',
-               timeout: float = None) -> Union['DrissionElement', str, None]: ...
+               timeout: float = None) -> Union[DrissionElement, str, None]: ...
 
     def after(self,
               index: int = 1,
               filter_loc: Union[tuple, str] = '',
-              timeout: float = None) -> Union['DrissionElement', str, None]: ...
+              timeout: float = None) -> Union[DrissionElement, str, None]: ...
 
     def prevs(self,
               filter_loc: Union[tuple, str] = '',
-              timeout: float = 0) -> List[Union['DrissionElement', str]]: ...
+              timeout: float = 0) -> List[Union[DrissionElement, str]]: ...
 
     def nexts(self,
               filter_loc: Union[tuple, str] = '',
-              timeout: float = 0) -> List[Union['DrissionElement', str]]: ...
+              timeout: float = 0) -> List[Union[DrissionElement, str]]: ...
 
     def befores(self,
                 filter_loc: Union[tuple, str] = '',
-                timeout: float = None) -> List[Union['DrissionElement', str]]: ...
+                timeout: float = None) -> List[Union[DrissionElement, str]]: ...
 
     def afters(self,
                filter_loc: Union[tuple, str] = '',
-               timeout: float = None) -> List[Union['DrissionElement', str]]: ...
+               timeout: float = None) -> List[Union[DrissionElement, str]]: ...
 
     def _get_brothers(self,
                       index: int = None,
                       filter_loc: Union[tuple, str] = '',
                       direction: str = 'following',
                       brother: bool = True,
-                      timeout: float = 0.5) -> List[Union['DrissionElement', str]]: ...
+                      timeout: float = 0.5) -> List[Union[DrissionElement, str]]: ...
 
     # ----------------以下属性或方法由后代实现----------------
     @property
diff --git a/DrissionPage/chromium_base.py b/DrissionPage/chromium_base.py
index d843cfe..88f02a5 100644
--- a/DrissionPage/chromium_base.py
+++ b/DrissionPage/chromium_base.py
@@ -295,6 +295,7 @@ class ChromiumBase(BasePage):
         :param args: 参数,按顺序在js文本中对应argument[0]、argument[1]...
         :return: 运行的结果
         """
+        self._to_d_mode()
         return run_js(self, script, as_expr, self.timeouts.script, args)
 
     def run_async_js(self, script, as_expr=False, *args):
@@ -304,6 +305,7 @@ class ChromiumBase(BasePage):
         :param args: 参数,按顺序在js文本中对应argument[0]、argument[1]...
         :return: None
         """
+        self._to_d_mode()
         from threading import Thread
         Thread(target=run_js, args=(self, script, as_expr, self.timeouts.script, args)).start()
 
@@ -650,6 +652,10 @@ class ChromiumBase(BasePage):
 
         return True
 
+    def _to_d_mode(self):
+        """用于使WebPage切换到d模式"""
+        return self._driver
+
 
 class Timeout(object):
     """用于保存d模式timeout信息的类"""
diff --git a/DrissionPage/chromium_base.pyi b/DrissionPage/chromium_base.pyi
index c74b8db..ec2caa7 100644
--- a/DrissionPage/chromium_base.pyi
+++ b/DrissionPage/chromium_base.pyi
@@ -187,6 +187,8 @@ class ChromiumBase(BasePage):
                    show_errmsg: bool = False,
                    timeout: float = None) -> Union[bool, None]: ...
 
+    def _to_d_mode(self): ...
+
 
 class Timeout(object):
 
diff --git a/DrissionPage/driver_element.py b/DrissionPage/driver_element.py
index d0e1552..57a8fdb 100644
--- a/DrissionPage/driver_element.py
+++ b/DrissionPage/driver_element.py
@@ -258,6 +258,7 @@ class DriverElement(DrissionElement):
         :param timeout: 查找元素的超时时间
         :return: 兄弟元素
         """
+        index, filter_loc = _exchange_arguments(index, filter_loc)
         return super().prev(index, filter_loc, timeout)
 
     def next(self, index=1, filter_loc='', timeout=0):
@@ -267,6 +268,7 @@ class DriverElement(DrissionElement):
         :param timeout: 查找元素的超时时间
         :return: 兄弟元素
         """
+        index, filter_loc = _exchange_arguments(index, filter_loc)
         return super().next(index, filter_loc, timeout)
 
     def before(self, index=1, filter_loc='', timeout=None):
@@ -276,6 +278,7 @@ class DriverElement(DrissionElement):
         :param timeout: 查找元素的超时时间
         :return: 本元素前面的某个元素或节点
         """
+        index, filter_loc = _exchange_arguments(index, filter_loc)
         return super().before(index, filter_loc, timeout)
 
     def after(self, index=1, filter_loc='', timeout=None):
@@ -285,6 +288,7 @@ class DriverElement(DrissionElement):
         :param timeout: 查找元素的超时时间
         :return: 本元素后面的某个元素或节点
         """
+        index, filter_loc = _exchange_arguments(index, filter_loc)
         return super().after(index, filter_loc, timeout)
 
     def prevs(self, filter_loc='', timeout=0):
@@ -325,6 +329,7 @@ class DriverElement(DrissionElement):
         :param filter_loc: 筛选条件,可用selenium的(By, str),也可用本库定位语法
         :return: DriverElement对象
         """
+        index, filter_loc = _exchange_arguments(index, filter_loc)
         eles = self._get_relative_eles('left', filter_loc)
         return eles[index - 1] if index <= len(eles) else None
 
@@ -334,6 +339,7 @@ class DriverElement(DrissionElement):
         :param filter_loc: 筛选条件,可用selenium的(By, str),也可用本库定位语法
         :return: DriverElement对象
         """
+        index, filter_loc = _exchange_arguments(index, filter_loc)
         eles = self._get_relative_eles('right', filter_loc)
         return eles[index - 1] if index <= len(eles) else None
 
@@ -343,6 +349,7 @@ class DriverElement(DrissionElement):
         :param filter_loc: 筛选条件,可用selenium的(By, str),也可用本库定位语法
         :return: DriverElement对象
         """
+        index, filter_loc = _exchange_arguments(index, filter_loc)
         eles = self._get_relative_eles('left', filter_loc)
         return eles[index - 1] if index <= len(eles) else None
 
@@ -352,6 +359,7 @@ class DriverElement(DrissionElement):
         :param filter_loc: 筛选条件,可用selenium的(By, str),也可用本库定位语法
         :return: DriverElement对象
         """
+        index, filter_loc = _exchange_arguments(index, filter_loc)
         eles = self._get_relative_eles('left', filter_loc)
         return eles[index - 1] if index <= len(eles) else None
 
@@ -361,6 +369,7 @@ class DriverElement(DrissionElement):
         :param filter_loc: 筛选条件,可用selenium的(By, str),也可用本库定位语法
         :return: DriverElement对象
         """
+        index, filter_loc = _exchange_arguments(index, filter_loc)
         eles = self._get_relative_eles('near', filter_loc)
         return eles[index - 1] if index <= len(eles) else None
 
@@ -1245,3 +1254,14 @@ class Scroll(object):
         :return: None
         """
         self.driver.run_script(f'{self.t1}.scrollBy({pixel},0);')
+
+
+def _exchange_arguments(index, filter_loc):
+    # 此方法用于兼容MixPage参数顺序相反的情况
+    if isinstance(index, str) and isinstance(filter_loc, int):
+        index, filter_loc = filter_loc, index
+    elif isinstance(index, int) and filter_loc == 1:
+        filter_loc = ''
+    elif isinstance(filter_loc, str) and index == '':
+        index = 1
+    return index, filter_loc
diff --git a/DrissionPage/web_page.py b/DrissionPage/web_page.py
index e8cb2e4..600dfb9 100644
--- a/DrissionPage/web_page.py
+++ b/DrissionPage/web_page.py
@@ -44,7 +44,7 @@ class WebPage(SessionPage, ChromiumPage, BasePage):
         self._response = None
 
         if self._mode == 'd':
-            self._driver
+            self._to_d_mode()
 
     def __call__(self, loc_or_str, timeout=None):
         """在内部查找元素                                            \n
diff --git a/docs/WebPage使用方法/3.10动作链.md b/docs/WebPage使用方法/3.10动作链.md
index 5eb950d..f76e3ca 100644
--- a/docs/WebPage使用方法/3.10动作链.md
+++ b/docs/WebPage使用方法/3.10动作链.md
@@ -34,9 +34,9 @@ from DrissionPage import ActionChains
 
 **参数:**
 
-| 名称     | 数据类型                         | 说明           |
-| ------ | ---------------------------- | ------------ |
-| `page` | `WebPage`对象或`ChromiumPage`对象 | 动作链要操作的浏览器页面 |
+| 名称     | 数据类型                         | 默认值 | 说明           |
+| ------ | ---------------------------- | --- | ------------ |
+| `page` | `WebPage`对象或`ChromiumPage`对象 | 无   | 动作链要操作的浏览器页面 |
 
 **示例:**
 
@@ -80,10 +80,10 @@ ac.move_to(ele_or_loc=ele)  # 使鼠标移动过到 ele 元素上
 
 **参数:**
 
-| 名称         | 数据类型  | 说明    |
-| ---------- | ----- | ----- |
-| `offset_x` | `int` | 偏移量 x |
-| `offset_y` | `int` | 偏移量 y |
+| 名称         | 数据类型  | 默认值 | 说明               |
+| ---------- | ----- | --- | ---------------- |
+| `offset_x` | `int` | 0   | x 轴偏移量,向右为正,向左为负 |
+| `offset_y` | `int` | 0   | y 轴偏移量,向下为正,向上为负 |
 
 **返回:**
 
@@ -93,10 +93,8 @@ ac.move_to(ele_or_loc=ele)  # 使鼠标移动过到 ele 元素上
 
 **示例:**
 
-鼠标向右移动 300 像素
-
 ```python
-ac.move(300, 0)
+ac.move(300, 0)  # 鼠标向右移动 300 像素
 ```
 
 ## 📍 `up()`
@@ -105,9 +103,17 @@ ac.move(300, 0)
 
 **参数:**
 
-- `pixel`:移动距离
+| 名称      | 数据类型  | 默认值 | 说明       |
+| ------- | ----- | --- | -------- |
+| `pixel` | `int` | 无   | 鼠标移动的像素值 |
 
-**返回:**`ActionChains`对象自己
+**返回:**
+
+| 数据类型           | 说明      |
+| -------------- | ------- |
+| `ActionChains` | 动作链对象本身 |
+
+**示例:**
 
 ```python
 ac.up(50)  # 鼠标向上移动 50 像素
@@ -119,9 +125,15 @@ ac.up(50)  # 鼠标向上移动 50 像素
 
 **参数:**
 
-- `pixel`:移动距离
+| 名称      | 数据类型  | 默认值 | 说明       |
+| ------- | ----- | --- | -------- |
+| `pixel` | `int` | 无   | 鼠标移动的像素值 |
 
-**返回:**`ActionChains`对象自己
+**返回:**
+
+| 数据类型           | 说明      |
+| -------------- | ------- |
+| `ActionChains` | 动作链对象本身 |
 
 ## 📍 `left()`
 
@@ -129,9 +141,15 @@ ac.up(50)  # 鼠标向上移动 50 像素
 
 **参数:**
 
-- `pixel`:移动距离
+| 名称      | 数据类型  | 默认值 | 说明       |
+| ------- | ----- | --- | -------- |
+| `pixel` | `int` | 无   | 鼠标移动的像素值 |
 
-**返回:**`ActionChains`对象自己
+**返回:**
+
+| 数据类型           | 说明      |
+| -------------- | ------- |
+| `ActionChains` | 动作链对象本身 |
 
 ## 📍 `right()`
 
@@ -139,9 +157,15 @@ ac.up(50)  # 鼠标向上移动 50 像素
 
 **参数:**
 
-- `pixel`:移动距离
+| 名称      | 数据类型  | 默认值 | 说明       |
+| ------- | ----- | --- | -------- |
+| `pixel` | `int` | 无   | 鼠标移动的像素值 |
 
-**返回:**`ActionChains`对象自己
+**返回:**
+
+| 数据类型           | 说明      |
+| -------------- | ------- |
+| `ActionChains` | 动作链对象本身 |
 
 # ✔ 鼠标按键
 
@@ -151,9 +175,15 @@ ac.up(50)  # 鼠标向上移动 50 像素
 
 **参数:**
 
-- `on_ele`:`ChromiumElement`元素或文本定位符
+| 名称       | 数据类型                    | 默认值    | 说明             |
+| -------- | ----------------------- | ------ | -------------- |
+| `on_ele` | `ChromiumElement`、`str` | `None` | 要点击的元素对象或文本定位符 |
 
-**返回:**`ActionChains`对象自己
+**返回:**
+
+| 数据类型           | 说明      |
+| -------------- | ------- |
+| `ActionChains` | 动作链对象本身 |
 
 ## 📍 `r_click()`
 
@@ -161,9 +191,15 @@ ac.up(50)  # 鼠标向上移动 50 像素
 
 **参数:**
 
-- `on_ele`:`ChromiumElement`元素或文本定位符
+| 名称       | 数据类型                    | 默认值    | 说明             |
+| -------- | ----------------------- | ------ | -------------- |
+| `on_ele` | `ChromiumElement`、`str` | `None` | 要点击的元素对象或文本定位符 |
 
-**返回:**`ActionChains`对象自己
+**返回:**
+
+| 数据类型           | 说明      |
+| -------------- | ------- |
+| `ActionChains` | 动作链对象本身 |
 
 ## 📍 `m_click()`
 
@@ -171,9 +207,15 @@ ac.up(50)  # 鼠标向上移动 50 像素
 
 **参数:**
 
-- `on_ele`:`ChromiumElement`元素或文本定位符
+| 名称       | 数据类型                    | 默认值    | 说明             |
+| -------- | ----------------------- | ------ | -------------- |
+| `on_ele` | `ChromiumElement`、`str` | `None` | 要点击的元素对象或文本定位符 |
 
-**返回:**`ActionChains`对象自己
+**返回:**
+
+| 数据类型           | 说明      |
+| -------------- | ------- |
+| `ActionChains` | 动作链对象本身 |
 
 ## 📍 `hold()`
 
@@ -181,9 +223,15 @@ ac.up(50)  # 鼠标向上移动 50 像素
 
 **参数:**
 
-- `on_ele`:`ChromiumElement`元素或文本定位符
+| 名称       | 数据类型                    | 默认值    | 说明             |
+| -------- | ----------------------- | ------ | -------------- |
+| `on_ele` | `ChromiumElement`、`str` | `None` | 要按住的元素对象或文本定位符 |
 
-**返回:**`ActionChains`对象自己
+**返回:**
+
+| 数据类型           | 说明      |
+| -------------- | ------- |
+| `ActionChains` | 动作链对象本身 |
 
 ## 📍 `release()`
 
@@ -191,9 +239,15 @@ ac.up(50)  # 鼠标向上移动 50 像素
 
 **参数:**
 
-- `on_ele`:`ChromiumElement`元素或文本定位符
+| 名称       | 数据类型                    | 默认值    | 说明             |
+| -------- | ----------------------- | ------ | -------------- |
+| `on_ele` | `ChromiumElement`、`str` | `None` | 要释放的元素对象或文本定位符 |
 
-**返回:**`ActionChains`对象自己
+**返回:**
+
+| 数据类型           | 说明      |
+| -------------- | ------- |
+| `ActionChains` | 动作链对象本身 |
 
 ## 📍 `r_hold()`
 
@@ -201,9 +255,15 @@ ac.up(50)  # 鼠标向上移动 50 像素
 
 **参数:**
 
-- `on_ele`:`ChromiumElement`元素或文本定位符
+| 名称       | 数据类型                    | 默认值    | 说明             |
+| -------- | ----------------------- | ------ | -------------- |
+| `on_ele` | `ChromiumElement`、`str` | `None` | 要按住的元素对象或文本定位符 |
 
-**返回:**`ActionChains`对象自己
+**返回:**
+
+| 数据类型           | 说明      |
+| -------------- | ------- |
+| `ActionChains` | 动作链对象本身 |
 
 ## 📍 `r_release()`
 
@@ -211,9 +271,15 @@ ac.up(50)  # 鼠标向上移动 50 像素
 
 **参数:**
 
-- `on_ele`:`ChromiumElement`元素或文本定位符
+| 名称       | 数据类型                    | 默认值    | 说明             |
+| -------- | ----------------------- | ------ | -------------- |
+| `on_ele` | `ChromiumElement`、`str` | `None` | 要释放的元素对象或文本定位符 |
 
-**返回:**`ActionChains`对象自己
+**返回:**
+
+| 数据类型           | 说明      |
+| -------------- | ------- |
+| `ActionChains` | 动作链对象本身 |
 
 ## 📍 `m_hold()`
 
@@ -221,9 +287,15 @@ ac.up(50)  # 鼠标向上移动 50 像素
 
 **参数:**
 
-- `on_ele`:`ChromiumElement`元素或文本定位符
+| 名称       | 数据类型                    | 默认值    | 说明             |
+| -------- | ----------------------- | ------ | -------------- |
+| `on_ele` | `ChromiumElement`、`str` | `None` | 要按住的元素对象或文本定位符 |
 
-**返回:**`ActionChains`对象自己
+**返回:**
+
+| 数据类型           | 说明      |
+| -------------- | ------- |
+| `ActionChains` | 动作链对象本身 |
 
 ## 📍 `m_release()`
 
@@ -231,9 +303,15 @@ ac.up(50)  # 鼠标向上移动 50 像素
 
 **参数:**
 
-- `on_ele`:`ChromiumElement`元素或文本定位符
+| 名称       | 数据类型                    | 默认值    | 说明             |
+| -------- | ----------------------- | ------ | -------------- |
+| `on_ele` | `ChromiumElement`、`str` | `None` | 要释放的元素对象或文本定位符 |
 
-**返回:**`ActionChains`对象自己
+**返回:**
+
+| 数据类型           | 说明      |
+| -------------- | ------- |
+| `ActionChains` | 动作链对象本身 |
 
 # ✔ 滚动滚轮
 
@@ -243,23 +321,37 @@ ac.up(50)  # 鼠标向上移动 50 像素
 
 **参数:**
 
-- `delta_x`:滚轮变化值 x
-- `delta_y`:滚轮变化值 y
-- `on_ele`:`ChromiumElement`元素或文本定位符
+| 名称        | 数据类型                    | 默认值    | 说明             |
+| --------- | ----------------------- | ------ | -------------- |
+| `delta_x` | `int`                   | 0      | 滚轮 x 轴变化值      |
+| `delta_y` | `str`                   | 0      | 滚轮 y 轴变化值      |
+| `on_ele`  | `ChromiumElement`、`str` | `None` | 要滚动的元素对象或文本定位符 |
 
-**返回:**`ActionChains`对象自己
+**返回:**
+
+| 数据类型           | 说明      |
+| -------------- | ------- |
+| `ActionChains` | 动作链对象本身 |
 
 # ✔ 键盘按键
 
 ## 📍 `key_down()`
 
-此方法用于按下键盘按键。
+此方法用于按下键盘按键,特殊字符见 Keys。
 
 **参数:**
 
-- `key`:按键键值,特殊字符见 Keys
+| 名称    | 数据类型  | 默认值 | 说明   |
+| ----- | ----- | --- | ---- |
+| `key` | `str` | 无   | 按键键值 |
 
-**返回:**`ActionChains`对象自己
+**返回:**
+
+| 数据类型           | 说明      |
+| -------------- | ------- |
+| `ActionChains` | 动作链对象本身 |
+
+**示例:**
 
 ```python
 from DrissionPage.keys import Keys
@@ -269,13 +361,19 @@ ac.key_down(Keys.CTRL)  # 按下 ctrl 键
 
 ## 📍 `key_up()`
 
-此方法用于提起键盘按键。
+此方法用于提起键盘按键,特殊字符见 Keys。
 
 **参数:**
 
-- `key`:按键键值,特殊字符见 Keys
+| 名称    | 数据类型  | 默认值 | 说明   |
+| ----- | ----- | --- | ---- |
+| `key` | `str` | 无   | 按键键值 |
 
-**返回:**`ActionChains`对象自己
+**返回:**
+
+| 数据类型           | 说明      |
+| -------------- | ------- |
+| `ActionChains` | 动作链对象本身 |
 
 ## 📍 `type()`
 
@@ -283,9 +381,15 @@ ac.key_down(Keys.CTRL)  # 按下 ctrl 键
 
 **参数:**
 
-- `text`:文本字符串
+| 名称     | 数据类型  | 默认值 | 说明     |
+| ------ | ----- | --- | ------ |
+| `text` | `str` | 无   | 要输入的文本 |
 
-**返回:**`ActionChains`对象自己
+**返回:**
+
+| 数据类型           | 说明      |
+| -------------- | ------- |
+| `ActionChains` | 动作链对象本身 |
 
 # ✔ 等待
 
@@ -295,9 +399,17 @@ ac.key_down(Keys.CTRL)  # 按下 ctrl 键
 
 **参数:**
 
-- `second`:秒数
+| 名称       | 数据类型    | 默认值 | 说明   |
+| -------- | ------- | --- | ---- |
+| `second` | `float` | 无   | 等待秒数 |
 
-**返回:**`ActionChains`对象自己
+**返回:**
+
+| 数据类型           | 说明      |
+| -------------- | ------- |
+| `ActionChains` | 动作链对象本身 |
+
+**示例:**
 
 ```python
 ac.wait(3)  # 停顿 3 秒
diff --git a/docs/入门指南/准备工作.md b/docs/入门指南/准备工作.md
index b2b42a8..9dadd88 100644
--- a/docs/入门指南/准备工作.md
+++ b/docs/入门指南/准备工作.md
@@ -2,7 +2,7 @@
 
 如果只使用收发数据包功能,无须任何准备工作。
 
-如果要控制浏览器,须设置浏览器路径。以下用 Chrome 作为演示。其它 Chromium 内核浏览器设置方法是一样的。
+如果要控制浏览器,须设置浏览器路径。程序默认设置控制 Chrome,所以以下用 Chrome 作为演示。如果要使用 edge 或其它 Chromium 内核浏览器,设置方法是一样的。
 
 # ✔️ 执行步骤
 
@@ -12,6 +12,8 @@
 
 后面在"创建页面对象"章节再介绍多 Chrome 浏览器共存的方法。
 
+!>**注意:**<br>如果您使用的是 edge 浏览器,直接关闭不能清干净进程,请打开任务管理器手动关闭进程。
+
 ## 📍 尝试启动浏览器
 
 执行以下代码,如果正常启动了浏览器并且访问了百度,则可跳过后面的步骤。
diff --git a/docs/版本历史.md b/docs/版本历史.md
index 12413ac..930a42e 100644
--- a/docs/版本历史.md
+++ b/docs/版本历史.md
@@ -1,3 +1,13 @@
+# v3.0.32
+
+- `WebPage`删除`check_page()`方法
+- `DriverOptions`和`easy_set`的`set_paths()`增加`browser_path`参数
+- `DriverOptions`增加`browser_path`属性
+- `ChromiumFrame`现在支持页面滚动
+- 修改`SessionElement`相对定位参数顺序
+- 改进滚动到元素功能
+- 修复一些问题
+
 # v3.0.31
 
 - `run_script()`、`run_async_script()`更名为`run_js`和`run_async_js()`
@@ -29,6 +39,7 @@
 # v3.0.20
 
 重大更新。推出`WebPage`,重新开发底层逻辑,摆脱对 selenium 的依赖,增强了功能,提升了运行效率。支持 chromium 内核的浏览器(如 chrome 和 edge)。比`MixPage`有以下优点:
+
 - 无 webdriver 特征,不会被网站识别
 - 无需为不同版本的浏览器下载不同的驱动
 - 运行速度更快
@@ -39,6 +50,7 @@
 - 可以对整个网页截图,包括视口外的部分(90以上版本浏览器支持)
 
 其它更新:
+
 - 增加`ChromiumTab`和`ChromiumFrame`类用于处理 tab 和 frame 元素
 - 新增与`WebPage`配合的动作链接`ActionChains`
 - ini 文件和`DriverOption`删除`set_window_rect`属性
@@ -57,8 +69,8 @@
 # v2.7.1
 
 - DriverPage
-  - 增加`get_session_storage()`、`get_local_storage()`、`set_session_storage()`、`set_local_storage()`、`clean_cache()`方法
-  - `run_cdp()`的`cmd_args`参数改为`**cmd_args`
+    - 增加`get_session_storage()`、`get_local_storage()`、`set_session_storage()`、`set_local_storage()`、`clean_cache()`方法
+    - `run_cdp()`的`cmd_args`参数改为`**cmd_args`
 - 关闭 driver 时会主动关闭 chromedriver.exe 的进程
 - 优化关闭浏览器进程逻辑
 
@@ -70,9 +82,9 @@
 # v2.6.0
 
 - 新增`Listener`类
-  - 可监听浏览器数据包
-  - 可异步监听
-  - 可实现每监听到若干数据包执行操作
+    - 可监听浏览器数据包
+    - 可异步监听
+    - 可实现每监听到若干数据包执行操作
 - 放弃对selenium4.1以下的支持
 - 解决使用新版浏览器时出现的一些问题