本节介绍`WebPage`的模式切换功能。
`WebPage`的 d 模式,行为与`ChromiumPage`一致,s 模式行为与`SessionPage`一致。
使用`change_mode()`方法进行切换。模式切换的时候会同步登录信息。
# ✔️ `mode`
**类型:**`str`
此属性返回`WebPage`当前模式。
**示例:**
```python
from DrissionPage import WebPage
page = WebPage()
print(page.mode)
```
**输出:**
```console
d
```
---
# ✔️ `change_mode()`
此方法用于切换`WebPage`运行模式。
| 参数名称 | 类型 | 默认值 | 说明 |
|:--------------:|:---------------:|:------:| ------------------------------------------------ |
| `mode` | `str`
`None` | `None` | 接收 's' 或 'd',以切换到指定模式
接收`None`则切换到与当前相对的另一个模式 |
| `go` | `bool` | `True` | 目标模式是否跳转到原模式的 url |
| `copy_cookies` | `bool` | `True` | 切换时是否复制 cookies 到目标模式 |
**返回:**`None`
---
# ✔️ 示例
## 📍 切换模式
```python
from DrissionPage import WebPage
page = WebPage()
page.get('https://www.baidu.com')
print(page.mode)
page.change_mode()
print(page.mode)
print(page.title)
```
**输出:**
```console
d
s
百度一下,你就知道
```
本示例中,执行操作如下:
- 初始d 模式访问百度
- 切换到 s 模式,此时会同步登录信息到 s 模式,且在 s 模式访问百度
- 打印 s 模式访问到的页面标题
---
## 📍 自动切换
在某个模式中使用另一个模式独有的方法,会自动切换模式。
!>**注意:**
这个功能还在调整中,后续版本表现可能和现在不一致,慎用。
```python
page = WebPage('s')
page.get('https://www.baidu.com')
print(page.mode)
print(page.size)
print(page.mode)
```
**输出:**
```python
s
(1250, 684)
d
```