浏览器操作作业 · 打开关闭

打开页面、断言校验及关闭浏览器会话

首页 浏览器操作导航

页面导读 · 打开关闭

driver.quit() vs driver.close() 的区别,以及浏览器进程清理

学习目标
理解 quit() 和 close() 的区别,知道为什么用完必须 quit()(否则浏览器进程残留吃内存)
核心 API
driver.quit() · driver.close() · driver.get()
作业数量
3 题基础 · 无进阶
难度:⭐⭐ 入门
⚠️ 前置注意: quit() 关整个浏览器进程,close() 只关当前标签;开多个标签时别把这俩搞混
参数配置 打开关闭 页面导航 窗口控制 页面信息 元素交互 Cookie操作 截图保存 超时等待

操作 2:打开 / 关闭页面

get() 打开 URL · close() 关闭当前标签 · quit() 退出整个浏览器进程。

close() vs quit() 区别
close() —— 只关当前标签页,浏览器进程继续活着
Tab A Tab B ✖ Tab C
quit() —— 关所有标签 + 杀掉 chromedriver 进程
Tab A Tab B Tab C
⚠️ 脚本结束必须调 quit(),否则任务管理器里会残留 chromedriver.exe

练习目标:模拟多标签打开,对比 close() 只关当前 vs quit() 全关

浏览器已就绪,点下面「打开」
from selenium import webdriver

driver = webdriver.Chrome()

# ① 打开页面
driver.get("https://www.example.com")
print(driver.title)

# ② 新开标签(JS 方式,最常用)
driver.execute_script("window.open('https://www.baidu.com');")

# ③ 切换到新标签
handles = driver.window_handles
driver.switch_to.window(handles[-1])
print(driver.current_url)     # → 百度

# ④ 切回原来的标签
driver.switch_to.window(handles[0])

# ⑤ 关闭当前标签(如果只剩一个,driver.close() 之后 driver 会失效!)
driver.close()

# ⑥ 退出整个浏览器(关所有标签 + 杀 chromedriver)
driver.quit()

# ⚠️ close() 只关当前 tab;quit() 全关
# ⚠️ 脚本结束必须调 quit(),否则 chromedriver 残留进程!

📝 作业要求

  1. 写一个脚本:先后打开 www.baidu.com 和 www.example.com(用 JS 新开标签),然后 只关闭 example 那个标签,最后 print 当前还剩几个窗口
  2. 验证:忘记写 driver.quit() 会怎样?任务管理器里会多出什么进程?
  3. 在 Selenium 4 里,driver.get("https://...") 和 driver.execute_script("window.location='...'") 有什么区别?
💡 提示:多标签场景下用 driver.window_handles + switch_to.window() 切换

关于我们

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