「Selenium+Python自动化从0到1②|2025浏览器操控7大核心API实战(附高效避坑模板))」

Python 自动化操作浏览器基础方法

在进行 Web 自动化测试时,操作浏览器是必不可少的环节。Python 结合 Selenium 提供了强大的浏览器操作功能,让我们能够轻松地控制浏览器执行各种任务。本文将详细介绍如何使用 Python 和 Selenium 操作浏览器的基本方法,包括打开浏览器、设置休眠时间、页面刷新、设置窗口大小、截屏、退出和关闭浏览器等。

一、打开浏览器

首先,我们需要导入 Selenium 的 webdriver 模块,并指定浏览器驱动路径来启动浏览器。以下示例展示了如何打开 Chrome 浏览器:

python 复制代码
from selenium import webdriver

# 指定浏览器驱动路径
driver_path = r"C:\path\to\chromedriver.exe"

# 打开 Chrome 浏览器
driver = webdriver.Chrome(driver_path)

# 打开一个网页
driver.get("https://www.baidu.com")

在上述代码中,我们通过 webdriver.Chrome() 方法启动了 Chrome 浏览器,并使用 get() 方法打开了百度首页。你可以将 driver_path 替换为实际的浏览器驱动路径。

二、设置休眠时间

在自动化测试过程中,有时需要等待页面加载完成或某些元素出现。我们可以使用 time 模块的 sleep() 函数来设置休眠时间:

python 复制代码
import time

# 设置休眠 3 秒
time.sleep(3)

上述代码会使程序暂停执行 3 秒钟,等待页面加载或元素出现。在实际测试中,可以根据需要调整休眠时间。

三、页面刷新

在某些情况下,我们需要刷新当前页面以获取最新的内容。Selenium 提供了 refresh() 方法来实现页面刷新:

python 复制代码
# 刷新当前页面
driver.refresh()

使用 refresh() 方法可以模拟用户手动刷新页面的操作,确保页面内容是最新的。

四、设置窗口大小

为了更好地进行测试,我们可能需要调整浏览器窗口的大小。Selenium 提供了 set_window_size() 方法来设置窗口大小:

python 复制代码
# 设置窗口大小为 800x600
driver.set_window_size(800, 600)

上述代码将浏览器窗口的宽度设置为 800 像素,高度设置为 600 像素。你可以根据实际需求调整窗口大小。

五、截屏

在测试过程中,有时需要截取当前页面的截图以供后续分析。Selenium 提供了 save_screenshot() 方法来实现截屏功能:

python 复制代码
# 截取当前页面并保存为 screenshot.png
driver.save_screenshot("screenshot.png")

上述代码会将当前页面的截图保存为 screenshot.png 文件。你可以指定其他文件名或路径来保存截图。

六、退出浏览器

当完成测试任务后,我们需要退出浏览器以释放资源。Selenium 提供了 quit() 方法来退出浏览器:

python 复制代码
# 退出浏览器
driver.quit()

使用 quit() 方法会关闭所有浏览器窗口并结束会话。在测试结束时调用该方法可以确保资源被正确释放。

七、关闭浏览器

除了退出浏览器外,我们还可以使用 close() 方法关闭当前浏览器窗口:

python 复制代码
# 关闭当前浏览器窗口
driver.close()

上述代码会关闭当前浏览器窗口,但不会结束会话。如果需要关闭所有窗口并结束会话,建议使用 quit() 方法。

八、课后作业:领取你的"浏览器驾驶执照"

🔑 Level 1 萌新任务

用Selenium打开B站,设置窗口为手机尺寸,截屏保存

🔑 Level 2 高手挑战

写一个自动刷新微博热搜榜的脚本,每隔5分钟截图存档

🔑 Level 3 终极Boss

结合定时任务(如APScheduler),每天早8点自动打开天气预报网页并邮件发送截图

九、总结

本文详细介绍了使用 Python 和 Selenium 操作浏览器的基本方法,包括打开浏览器、设置休眠时间、页面刷新、设置窗口大小、截屏、退出和关闭浏览器等。这些方法是进行 Web 自动化测试的基础,熟练掌握它们可以大大提高测试效率和质量。希望本文对你有所帮助,让你在自动化测试的道路上更进一步!

下期预告:《Selenium元素定位:用XPath/CSS选择器精准"狙击"网页元素》

相关推荐
时早玖沐4 分钟前
KOOK「找不到语音频道」:同一个错误假设,我犯了三次
python·开源·ai编程
西瓜拿铁好喝4 分钟前
AI 办公和 RPA 不是一回事:自动化与智能化的分工
人工智能·自动化·rpa
_冷眸_6 分钟前
Python 调用大模型 API:最小请求、Base URL 和 401/404 排查
开发语言·人工智能·python
Dumbness25 分钟前
UIA 读微信群消息没有 id,怎么判断哪条是新的:后缀对齐在翻历史和撤回时整屏重报
python·算法
甜到心里的蛋糕31 分钟前
从 QQ 机器人到 B 站 AI 运营:一套可复现的视频流水线踩坑实录
运维·人工智能·python·自动化·视频制作
张驰咨询公司33 分钟前
六西格玛Python DOE试验矩阵:3因子2水平生成与验算
python·六西格玛·实验设计·itertools·doe试验矩阵
QYR-分析42 分钟前
26.2% 高增!场内及园区无人物流车,厂内短驳自动化的 L4 货运载体
运维·自动化
像风一样自由20201 小时前
2.如何用FastAPI把一个Python算法封装成HTTP服务
python·算法·fastapi
青少儿编程课堂1 小时前
蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:字典树前缀树与单词检索统计
c++·python·算法·bfs·信息学竞赛
田里的水稻1 小时前
FA_CNN卷积神经网络十八---感知机到多层感知机PyTorch
人工智能·pytorch·python