浏览器操作作业 · 参数配置

配置浏览器参数(无头 / UA / 窗口尺寸等)

首页 浏览器操作导航

页面导读 · 参数配置

掌握 Chrome/Edge/Firefox 驱动初始化,配置常用 options

学习目标
能独立配置 Chrome/Edge/Firefox options,掌握常用的无头模式、禁用图片、窗口大小设置
核心 API
webdriver.Chrome(options=...) · webdriver.Edge() · webdriver.Firefox() · ChromeOptions()
作业数量
4 题基础 · 无进阶
难度:⭐⭐ 入门
⚠️ 前置注意: 不同浏览器需要对应的 driver(chromedriver/msedgedriver/geckodriver),Chrome 115+ 可通过 Selenium Manager 自动下载
参数配置 打开关闭 页面导航 窗口控制 页面信息 元素交互 Cookie操作 截图保存 超时等待

操作 1:参数配置

通过 ChromeOptions / EdgeOptions / FirefoxOptions 配置。每开关一个选项 → 下方 Python 代码实时变化。

为什么要配置浏览器? Selenium 默认启动的是「裸」浏览器,真实测试往往需要定制: 无头模式 模拟手机 UA 固定下载路径 禁用图片加速

练习目标:打开 / 关闭下面开关 → 实时生成完整 Python 启动脚本

无头模式 默认关
不显示浏览器界面,后台静默运行(CI/服务器必备)
启动即最大化 默认开
Chrome/Edge: --start-maximized;Firefox: driver.maximize_window()
模拟手机 UA 默认关
伪装成 iPhone 14 Pro,触发移动端页面布局
反检测 Anti-Detect 默认关
隐藏 webdriver 特征 + 过滤 CDP,绕过简单风控(Chromium 专用)
IE 兼容模式 Edge 专属
访问 IE-only 老系统(ActiveX/JSP),企业内网刚需(仅 Edge 支持)
配置代理 Proxy 默认关
--proxy-server=http://127.0.0.1:7890,支持 HTTP/SOCKS5(全浏览器)
持久化用户数据目录 默认关
--user-data-dir,保留登录态、Cookie、扩展(Chromium 专用)
禁用图片加载 默认关
跳过所有 img 资源,页面加载快 30-50%(Chrome: --blink-settings;Firefox: profile.set_preference)
禁用 JavaScript Firefox 专属
profile.set_preference("javascript.enabled", false),测试无 JS 降级场景
禁用硬件加速 Firefox 专属
解决老机器无头模式白屏、WebGL 报错:layers.acceleration.disabled
隐身模式 默认关
不继承本机 cookie / 登录态(Chromium 专用)
禁用自动化提示 默认开
excludeSwitches + --disable-infobars,避免「Chrome 正受自动测试软件控制」横幅
自动下载到指定目录 默认关
prefs.default_directory + 跳过下载弹窗
# 点上方任意开关 → 这里立即显示完整 Python 启动脚本
# 默认:Chrome + 启动最大化 + 禁用自动化提示(推荐基础配置)

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument("--start-maximized")
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option("useAutomationExtension", False)

driver = webdriver.Chrome(options=options)
driver.get("https://www.example.com")
print("标题:", driver.title)
driver.quit()

📝 作业要求

  1. 写一个 create_driver(profile) 工厂函数:参数是字典(如 {"headless":True, "mobile":True}),内部根据字典内容自动组装 ChromeOptions,返回配置好的 driver
  2. 分别写两段代码:Chrome 用 --blink-settings 禁图,Firefox 用 FirefoxProfile.set_preference 禁图 → 把两者都 print(options) → 直观对比 Selenium 底层对不同引擎的参数传递方式差异
  3. 开启 headless + maximized + nodialog + antidetect 四个开关 → 用 options.to_capabilities() 导出 JSON → json.dump(..., indent=2) 漂亮打印,看最终传给 chromedriver 的完整 capabilities
  4. 禁用图片加载 vs 不禁 —— 用 time.time() 分别测加载同一页面花了多少秒,写出加速比例
💡 提示:第 2 题是本文核心教学点 —— 同样效果,Chromium 走 add_argument 命令行,Firefox 走 profile.set_preference

关于我们

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. 如涉及版权问题或内容建议,请及时通过联系方式与我们沟通,我们将第一时间处理。