mirror of
https://gitee.com/g1879/DrissionPage.git
synced 2024-12-10 04:00:23 +08:00
92 lines
2.6 KiB
Markdown
92 lines
2.6 KiB
Markdown
现在,我们通过一些例子,来直观感受一下 DrissionPage 的工作方式。
|
|
|
|
本示例演示使用`ChromiumPage`控制浏览器登录 gitee 网站。
|
|
|
|
# ✔️ 页面分析
|
|
|
|
网址:[https://gitee.com/login](https://gitee.com/login)
|
|
|
|
打开网址,按`F12`,我们可以看到页面 html 如下:
|
|
|
|

|
|
|
|
(图片点击放大)
|
|
|
|
用户名输入框`id`为`'user_login'`,密码输入框`id`为`'user_password'`,登录按钮`value`为`'登 录'`。
|
|
|
|
我们可以用这三个属性定位这三个元素,然后对其输入数据和点击。
|
|
|
|
# ✔️ 示例代码
|
|
|
|
您可以把以下代码复制到编辑器,把账号和密码改为您自己的,可直接执行看到运行结果。
|
|
|
|
```python
|
|
from DrissionPage import ChromiumPage
|
|
|
|
# 创建页面对象,并启动或接管浏览器
|
|
page = ChroiumPage()
|
|
# 跳转到登录页面
|
|
page.get('https://gitee.com/login')
|
|
|
|
# 定位到账号文本框,获取文本框元素
|
|
ele = page.ele('#user_login')
|
|
# 输入对文本框输入账号
|
|
ele.input('你的账号')
|
|
# 定位到密码文本框并输入密码
|
|
page.ele('#user_password').input('你的密码')
|
|
# 点击登录按钮
|
|
page.ele('@value=登 录').click()
|
|
```
|
|
|
|
# ✔️ 示例详解
|
|
|
|
首先,我们导入用于控制浏览器的类`ChromiumPage`。
|
|
|
|
```python
|
|
from DrissionPage import ChromiumPage
|
|
```
|
|
|
|
接下来,我们创建一个`ChromiumPage`对象。
|
|
|
|
```python
|
|
page = ChromiumPage()
|
|
```
|
|
|
|
`get()`方法用于访问参数中的网址。它会等待页面完全加载,再继续执行后面的代码。您也可以修改等待策略,如等待 DOM 加载而不等待资源下载,就停止加载,这将在后面的章节说明。
|
|
|
|
```python
|
|
page.get('https://gitee.com/login')
|
|
```
|
|
|
|
`ele()`方法用于查找元素,它返回一个`ChromiumElement`元素对象,可用于对元素的操作。
|
|
|
|
`'#user_login'`是定位符文本,`#`意思是按`id`属性查找元素。
|
|
|
|
值得一提的是,`ele()`内置了等待,如果元素未加载,它会执行等待,直到元素出现或到达时限。默认超时时间 10 秒。
|
|
|
|
```python
|
|
ele = page.ele('#user_login')
|
|
```
|
|
|
|
`input()`方法用于对元素输入文本。
|
|
|
|
```python
|
|
ele.input('你的账号')
|
|
```
|
|
|
|
我们也可以进行链式操作。
|
|
|
|
```python
|
|
page.ele('#user_password').input('你的密码')
|
|
```
|
|
|
|
输入账号密码后,以相同的方法获取按钮元素,并对其执行点击操作。
|
|
|
|
不同的是,这次通过其`value`属性作为查找条件。`@`表示按属性名查找。
|
|
|
|
```python
|
|
page.ele('@value=登 录').click()
|
|
```
|
|
|
|
到这里,我们已完成了自动登录 gitee 网站的操作。
|