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

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

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

一、打开浏览器

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

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() 函数来设置休眠时间:

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

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

三、页面刷新

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

# 刷新当前页面
driver.refresh()

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

四、设置窗口大小

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

# 设置窗口大小为 800x600
driver.set_window_size(800, 600)

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

五、截屏

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

# 截取当前页面并保存为 screenshot.png
driver.save_screenshot("screenshot.png")

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

六、退出浏览器

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

# 退出浏览器
driver.quit()

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

七、关闭浏览器

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

# 关闭当前浏览器窗口
driver.close()

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

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

🔑 Level 1 萌新任务

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

🔑 Level 2 高手挑战

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

🔑 Level 3 终极Boss

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

九、总结

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/28272.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

React antd的datePicker自定义,封装成组件

一、antd的datePicker自定义 需求:用户需要为日期选择器的每个日期单元格添加一个Tooltip,当鼠标悬停时显示日期、可兑换流量余额和本公会可兑流量。这些数据需要从接口获取。我需要结合之前的代码,确保Tooltip正确显示,并且数据…

【算法题解答·一】二分法

【算法题解答一】二分法 接上文 【算法方法总结一】二分法的一些技巧和注意事项 二分法相关题目如下: 34.在排序数组中查找元素第一和最后一个位置 使用 左闭右闭,[left,right]关键在于 nums[mid] target 的部分找 第一个 target 的过程中&#xff0…

Non-Homophilic Graph Pre-Training and Prompt Learning

Non-Homophilic Graph Pre-Training and Prompt Learning KDD25 ​#paper/⭐#​ 目的:对异配图进行prompt ‍ ​​ 方法 邻居节点的综合嵌入 s v 1 ∣ V ( S v ) ∣ ∑ u ∈ V ( S v ) h u ⋅ s i m ( h u , h v ) , \mathbf{s}_{v}\frac{1}{|V(S_{v})|}\su…

BUU44 [BJDCTF2020]ZJCTF,不过如此1 [php://filter][正则表达式get输入数据][捕获组反向引用][php中单双引号]

题目: 我仿佛见到了一位故人。。。也难怪,题目就是ZJCTF 按要求提交/?textdata://,I have a dream&filenext.php后: ......不太行,好像得用filephp://filter/convert.base64-encode/resourcenext.php 耶?那 f…

掌握 findIndex、push 和 splice:打造微信小程序的灵活图片上传功能✨

文章目录 ✨ 掌握 findIndex、push 和 splice:打造微信小程序的灵活图片上传功能 🌟示例场景:小程序图片上传🌼 认识 findIndex定义语法在代码中的应用示例当前行为 🚀 认识 push定义语法在代码中的应用示例特点 ✂️ …

山西青年杂志山西青年杂志社山西青年编辑部2025年第3期目录

青年争鸣 教师发展中心行动转向的价值意蕴分析框架研究与启示 于宝证;李军红;郑钰莹;何易雯; 产教融合视角下职业本科工商管理专业人才培养模式探析 杜芯铭; 青年教育研究 教育数字化背景下高职院校的课堂教学研究 张晨; 统筹职业教育、高等教育、继续教育协同…

神经网络:AI的网络神经

神经网络(Neural Networks)是深度学习的基础,是一种模仿生物神经系统结构和功能的计算模型。它由大量相互连接的节点(称为神经元)组成,能够通过学习数据中的模式来完成各种任务,如图像分类、语音…

计算机视觉|ViT详解:打破视觉与语言界限

一、ViT 的诞生背景 在计算机视觉领域的发展中,卷积神经网络(CNN)一直占据重要地位。自 2012 年 AlexNet 在 ImageNet 大赛中取得优异成绩后,CNN 在图像分类任务中显示出强大能力。随后,VGG、ResNet 等深度网络架构不…

储油自动化革命,网关PROFINET与MODBUS网桥的无缝融合,锦上添花

储油行业作为能源供应链的关键环节,其自动化和监控系统的可靠性和效率至关重要。随着工业4.0的推进,储油设施越来越多地采用先进的自动化技术以提高安全性、降低成本并优化运营。本案例探讨了如何通过使用稳联技术PROFINET转MODBUS模块网关网桥&#xff…

解锁Egg.js:从Node.js小白到Web开发高手的进阶之路

一、Egg.js 是什么 在当今的 Web 开发领域,Node.js 凭借其事件驱动、非阻塞 I/O 的模型,在构建高性能、可扩展的网络应用方面展现出独特的优势 ,受到了广大开发者的青睐。它让 JavaScript 不仅局限于前端,还能在服务器端大展身手&…

python:pymunk + pygame 模拟六边形中小球弹跳运动

向 chat.deepseek.com 提问:编写 python 程序,用 pymunk, 有一个正六边形,围绕中心点缓慢旋转,六边形内有一个小球,六边形的6条边作为墙壁,小球受重力和摩擦力、弹力影响,模拟小球弹跳运动&…

学习 Wireshark 分析 Android Netlog

Android 设备抓取的日志中,netlog 文件夹包含.cap文件可以使用Wireshark工具查看网络日志。 Wireshark 分析 DNS 步骤 在使用Wireshark分析网路日志时,要检查DNS解析是否正常,可以按照以下步骤操作: 识别DNS查询和回应 使用过滤器 udp.port == 53 来查看所有DNS相关的流量…

OpenHarmony启动系统-U-Boot简介和源码下载与编译

OpenHarmony系统启动流程简述 设备上电后,OpenHarmony系统大致经历以下3个阶段: 1.BootRom代码引导加载UBoot; 2.UBoot启动初始化硬件资源,引导并加载系统内核(Linux内核); 3.Kernel(LiteOs,Linux内核)启动、加载驱动…

论文笔记-NeurIPS2017-DropoutNet

论文笔记-NeurIPS2017-DropoutNet: Addressing Cold Start in Recommender Systems DropoutNet:解决推荐系统中的冷启动问题摘要1.引言2.前言3.方法3.1模型架构3.2冷启动训练3.3推荐 4.实验4.1实验设置4.2在CiteULike上的实验结果4.2.1 Dropout率的影响4.2.2 实验结…

ctf网络安全赛题

CTF简介 CTF(Capture The Flag)中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF起源于1996年DEFCON全球黑客大会,以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。发展…

一周学会Flask3 Python Web开发-WTForms表单验证

锋哥原创的Flask3 Python Web开发 Flask3视频教程: 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 我们可以通过WTForms表单类属性的validators属性来实现表单验证。 常用的WTForms验证器 验证器说明DataRequired(messageNo…

工业巡检进入‘无人化+AI’时代:无人机智能系统的落地实践与未来

在现代化工业生产、建筑设施和交通运输等领域,设备设施的稳定运行是保障安全和效率的核心。传统人工巡检方式受限于效率低、成本高、漏检风险大等问题,已难以满足日益复杂的运维需求。在此背景下,无人机智能巡检系统凭借其高效性、智能化和精…

CentOS 7中安装Dify

Dify 是一个开源的 LLM 应用开发平台。其直观的界面结合了 AI 工作流、RAG 管道、Agent、模型管理、可观测性功能等,让您可以快速从原型到生产。尤其是我们本地部署DeepSeek等大模型时,会需要用到Dify来帮我们快捷的开发和应用。 大家可以参考学习它的中…

Kmeans算法来实现RFM指标计算步骤

K-Means(K均值)是一种经典的无监督聚类算法,主要用于将数据集划分为 KKK 个不同的簇(Cluster)。 它基于最小化簇内样本的平方误差,即最小化数据点与簇中心的距离之和。 1. K-Means 算法原理 (1) 主要步骤 …

C# .NET Core HttpClient 和 HttpWebRequest 使用

HttpWebRequest 这是.NET创建者最初开发用于使用HTTP请求的标准类。HttpWebRequest是老版本.net下常用的,较为底层且复杂,访问速度及并发也不甚理想,但是使用HttpWebRequest可以让开发者控制请求/响应流程的各个方面,如 timeouts,…