📖 知识点
1. click () 点击咒
定位元素后,调用 .click() 就能模拟点击它:
# 定位按钮并点击
btn = page.ele("#su")
btn.click()
# 也可以一步到位
page.ele("#su").click()
点击后,浏览器会像真人点击一样触发对应的网页行为(跳转、提交、弹窗等)。
2. 点击超链接跳转
点击一个 <a> 链接,浏览器会跳转到该链接指向的页面:
# 点击第一个链接,跳转到对应页面
page.ele("a").click()
💡 核心理解
.click()模拟的是鼠标左键单击,DrissionPage 会自动模拟真实点击,行为接近真人- 点击后如果需要等页面加载,配合后续学习的
wait方法使用(Day12)
3. 点击后发生了什么?
| 点击对象 | 触发结果 |
|---|---|
按钮 button | 触发提交、搜索、弹窗等逻辑 |
超链接 a | 跳转到 href 指向的页面 |
| 复选框 / 单选 | 改变勾选状态(Day10 学习) |
完整示例
from DrissionPage import ChromiumPage
page = ChromiumPage()
page.get("https://www.baidu.com")
# 点击咒:定位搜索按钮并点击
search_btn = page.ele("#su")
print("点击前当前页:", page.title)
search_btn.click()
print("点击后当前页:", page.title)
⚠️ 易错提醒
- 点击前务必确认元素已经定位到(不为 None),否则报错
- 点击跳转类链接后,页面 URL 和标题会变化,可用
page.url验证是否跳转成功- 某些元素需要等待加载完成才能点击(后续 wait 解决)
⚔️ Kata 实战任务
任务需求:
- 导入 ChromiumPage,访问百度
- 使用 CSS 选择器定位搜索按钮
#su,打印点击前的页面标题 - 调用
.click()点击按钮 - 打印点击后的页面标题,观察变化
参考代码
from DrissionPage import ChromiumPage
page = ChromiumPage()
page.get("https://www.baidu.com")
# 定位搜索按钮
search_btn = page.ele("#su")
print("🔘 定位到搜索按钮:", search_btn.attr("value"))
# 施展指尖触碰咒
print("👆 点击前页面标题:", page.title)
search_btn.click()
print("👆 点击后页面标题:", page.title)
运行输出(示意):
🔘 定位到搜索按钮: 百度一下
👆 点击前页面标题: 百度一下,你就知道
👆 点击后页面标题: 百度一下,你就知道
💡 说明:空输入点击百度搜索按钮,通常停留在原页或跳到百度首页,标题可能不变。更明显的演示是点击一个超链接(见思考题 2),跳转后标题会变化。
🧠 思考题
.click()模拟的是鼠标的哪个操作?点击超链接和点击按钮触发的效果有什么区别?- 改用点击一个超链接(如
page.ele("a").click()),观察页面标题和 url 是否变化,为什么?
行者孙Python