浏览器操作作业 · 页面信息

获取网页标题、地址、源码及会话信息

首页 浏览器操作导航

页面导读 · 页面信息

title / current_url / page_source 三件套 + Selenium 4 新方法

学习目标
能独立获取页面标题、URL、源码,知道 page_source 返回的是渲染后 DOM 而非服务器原始 HTML
核心 API
driver.title · driver.current_url · driver.page_source · driver.print_page_source()
作业数量
4 题基础 · +1 进阶可选
难度:⭐⭐ 入门
⚠️ 前置注意: page_source 是渲染后的 DOM 快照(含 JS 修改),不是服务器返回的原始 HTML;print_page_source() 是 Selenium 4 新增
参数配置 打开关闭 页面导航 窗口控制 页面信息 元素交互 Cookie操作 截图保存 超时等待

操作 5:页面信息获取

读取 title 标题、current_url 当前地址、page_source 源码;Selenium 4 新方法:print_page_source / get_log。

title / url / page_source —— Selenium 的「页面三件套」
driver.title
HTML <title> 标签里的文字
driver.current_url
浏览器地址栏里完整 URL
driver.page_source
整个 DOM 的 HTML 字符串
⚠️ page_source 返回的是浏览器渲染后的 DOM 快照(含 JS 修改),不是服务器原始 HTML
💡 Selenium 4 新增 driver.print_page_source("page.html"),一行代码保存源码到文件

练习目标:逐项获取当前页面信息,观察每条字段的实时变化

Selenium 练习页
点击下方按钮 → 右侧信息卡片实时更新
driver.title
—— 等待获取 ——
driver.current_url
—— 等待获取 ——
page_source 长度
—— 等待获取 ——
window_handles
—— 等待获取 ——
current_window_handle
—— 等待获取 ———
session_id
—— 等待获取 ——
// 点击「page_source 摘要」按钮,这里会显示 HTML 前 15 行
# 页面信息获取 + Selenium 4 新方法
print("标题:",  driver.title)
print("URL:",   driver.current_url)
print("源码长度:", len(driver.page_source))
print("所有标签:", driver.window_handles)
print("当前句柄:", driver.current_window_handle)
print("Session:", driver.session_id)

# Selenium 4 新写法
driver.print_page_source("page.html")   # 一行保存源码到文件
logs = driver.get_log("browser")        # 读取浏览器控制台日志

# ✅ 实战:一次性打包成 JSON 输出
import json
info = {
    "title": driver.title,
    "url": driver.current_url,
    "source_len": len(driver.page_source),
    "handles": driver.window_handles,
    "session": driver.session_id,
}

📝 作业要求

  1. 打开 https://autotest-505.pages.dev/,用 6 个方法分别读取 title / url / source 长度 / window_handles / current_window_handle / session_id,一次性 json.dumps() 漂亮打印成 JSON
  2. 把第 1 题打开的网站 title 里挑一个关键词,写 if "你的关键词" in driver.title: print("✅"),再把判断封装成 check_title(keyword) 函数(复用上面的 driver)
  3. page_source 返回的是整个 HTML 字符串 —— 试用 Python 的 len()、正则、BeautifulSoup 分别统计页面有多少个 <img> 标签,并把三种方法的耗时用 time.perf_counter() 对比
  4. 新开标签后比较 driver.window_handles 和 driver.current_window_handle 的区别 —— 哪个是列表?哪个是当前标签句柄?
  5. 进阶 · 可选 logs = driver.get_log("browser") 读取 3 种级别日志(browser / performance / driver),分别打印看看内容差异
💡 提示:Selenium 4 新增 driver.print_page_source(),比自己 open().write() 更方便;current_window_handle 是切换标签时判断「我在哪」的唯一凭据

关于我们

Python 自动化测试学习平台是一个面向软件测试工程师、开发人员及在校学生的交互式在线学习平台,专注于 Selenium WebDriver 与 Python unittest 自动化测试技能的教学与实践。

我们以"理论 + 实战 + 可交互演示"为核心特色,将八种常规元素定位和Javascript定位、元素操作、自动化测试工具、单元测试、测试模型等知识体系拆分为模块化课程,每个模块都配有可点击、可输入、可运行的模拟练习页面。

平台致力于降低自动化测试的入门门槛,让学习者从"看懂代码"到"动手实操",逐步掌握企业级自动化测试框架的设计与落地能力。

联系方式

📧邮箱:lq@selenium-auto-test.com

📞电话:0755-12345678

📍地址:深圳

💬微信公众号:Selenium自动化测试

🐙GitHub:github.com/selenium-auto-test

免责声明

1. 本平台所有示例代码、演示页面及教程内容均仅供学习交流使用,不构成任何商业推广或技术服务承诺。

2. 平台中的 Selenium API 描述、Python 语法说明均以官方文档为准,如有版本差异请以对应官方文档为准。

3. 学习者在实际项目中应用平台所学内容时,应结合自身项目环境进行充分测试,本平台不对因直接使用示例代码而产生的任何直接或间接损失承担责任。

4. 本平台所引用的第三方库(Selenium、ChromeDriver、unittest 等)版权归其各自作者及维护者所有。

5. 如涉及版权问题或内容建议,请及时通过联系方式与我们沟通,我们将第一时间处理。