「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选择器精准“狙击”网页元素》
相关文章:
「Selenium+Python自动化从0到1②|2025浏览器操控7大核心API实战(附高效避坑模板))」
Python 自动化操作浏览器基础方法 在进行 Web 自动化测试时,操作浏览器是必不可少的环节。Python 结合 Selenium 提供了强大的浏览器操作功能,让我们能够轻松地控制浏览器执行各种任务。本文将详细介绍如何使用 Python 和 Selenium 操作浏览器的基本方法…...
矩阵系列 题解
1.洛谷 P1962 斐波那契数列 题意 大家都知道,斐波那契数列是满足如下性质的一个数列: F n { 1 ( n ≤ 2 ) F n − 1 F n − 2 ( n ≥ 3 ) F_n \left\{\begin{aligned} 1 \space (n \le 2) \\ F_{n-1}F_{n-2} \space (n\ge 3) \end{aligned}\right. …...
活动报名:Voice Agent 技术现状及应用展望丨 3.8 北京
「人人发言,所有人向所有人学习!」——Z 沙龙 「一起探索下一代语音驱动的人机交互界面。」——RTE 开发者社区 3 月 8 日周六下午,北京,「智谱 Z 计划&Z Fund」和「RTE 开发者社区」将合办一场 Voice Agent 主题的线下活动…...
【卡牌——二分】
题目 分析 发现答案具有二分性,果断二分答案 代码 #include <bits/stdc.h> using namespace std; using ll long long;const int N 2e510;int n, a[N], li[N]; ll m;bool check(int x) {ll t m;for(int i 1; i < n; i){if(a[i] > x) continue; //…...
《第十五部分》STM32之FLASH闪存(终结篇)
本章是江科大自学STM32的最后一章节,历经2个月的断断续续时间,终于学到了最后,总结,这次的学习历程,相对于学习51还是略出一些难度,也就是若你是非科班,学习起来还是有一定的难度的,…...
属性的设置
笔记 class Student:def __init__(self, name, gender):self.name nameself.__gender gender # self.__gender 是私有的实例属性# 使用property 修改方法,将方法转成属性使用propertydef gender(self):return self.__gender# 将我们的gender这个属性设置为可写属…...
本地部署Deepseek+Cherry Studio
为啥要本地部署deepseek? 因为给deepseek发送指令得到服务器繁忙的回馈,本地部署会运行的更快 1.Ollama安装与部署 Ollama是一个开源框架,专为在本地机器上便捷部署和运行大型语言模型(LLM)而设计 winR——cmd——ol…...
CMU15445(2023fall) Project #2 - Extendible Hash Index 匠心分析
胡未灭,鬓已秋,泪空流 此生谁料 心在天山 身老沧州 ——诉衷情 完整代码见: SnowLegend-star/CMU15445-2023fall: Having Conquered the Loftiest Peak, We Stand But a Step Away from Victory in This Stage. With unwavering determinati…...
【VSCode】VSCode下载安装与配置极简描述
VSCode 参考网址:[Visual Studio Code Guide | GZTime’s Blog]. 下载安装 下载地址:Download Visual Studio Code - Mac, Linux, Windows. 注:推荐不更改安装位置,并且在附加任务中“其他”中的四项全部勾选,即将用…...
【前端基础】Day 5 CSS浮动
目录 1. 浮动 1.1 标准流(普通流/文档流) 1.2 浮动 1.2.1 浮动的特性 1.2.2 浮动元素常和标准流父级搭配使用 1.2.3 案例 2. 常见网页布局 2.1 常见网页布局 2.2 浮动布局注意点 3. 清除浮动 3.1 原因 3.2 清除浮动的本质 3.3 清除浮动的方…...
处理DeepSeek返回的markdown文本
处理DeepSeek返回的markdown文本 markdown预览组件,支持公式显示,支持uniapp。 相关依赖 markdown-itmarkdown-it-mathjaxmarkdown-it-katexmarkdown-it-latexkatexgithub-markdown-css 组件源码 <!--* Description: markdown显示组件* Author: wa…...
互联网+房产中介+装修设计+物料市场+智能家居一体化平台需求书
一、项目概述 1.1 项目背景 随着互联网技术的飞速发展以及人们生活品质的显著提升,传统房产交易、装修设计、家居购物等领域暴露出诸多问题。信息不对称使得用户难以获取全面准确的信息,在房产交易中可能高价买入或低价卖出,装修时可能遭遇…...
Node.js定义以及性能优化
Node.js Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时,广泛用于构建高性能的网络应用。以下是一些常见的 Node.js 面试题及其解答,帮助你准备面试: 1. 什么是 Node.js? Node.js 是一个基于 Chrome V8 引擎的 JavaSc…...
浅谈流媒体协议以及视频编解码
流媒体协议介绍 流媒体协议用于传输视频、音频等多媒体数据,确保数据流畅地传输到用户设备。常见的流媒体协议包括 RTMP、HLS、DASH、WebRTC 等,每种协议具有不同的特点和适用场景。 1. RTMP (Real-Time Messaging Protocol) 定义:由 Adob…...
在 Windows 上配置 Ollama 服务并开放局域网访问
为了在局域网内共享 Ollama 服务,我们需要完成以下两步: 1、设置 Ollama 的环境变量 OLLAMA_HOST,使其监听局域网的 IP 地址。 (1) 配置 Ollama 服务的监听地址 Ollama 服务使用环境变量 OLLAMA_HOST 来指定监听的地…...
【六祎 - Note】消息队列的演变,架构图;备忘录; IBM MQ,RabbitMQ,Kafka,Pulsar
IBM MQ 于 1993 年推出。它最初称为 MQSeries,2002 年更名为 WebSphere MQ。2014 年更名为 IBM MQ。IBM MQ 是一款非常成功的产品,广泛应用于金融领域。其收入在 2020 年仍达到 10 亿美元。 RabbitMQ 架构与 IBM MQ 不同,更类似于 Kafka 的…...
常见AI写作工具介绍(ChatGPT 4o、DeepClaude、Claude 3.5 Sonnet 、DeepSeek R1等)
AI写作工具介绍 1. ChatGPT-4o ChatGPT-4o是OpenAI于2024年5月发布的最新旗舰模型,相比之前的版本,它在多模态支持和实时推理能力上有了显著提升。它能够处理和理解音频、图像和文本数据,适用于复杂的图像分析、语音识别等应用场景[1]。 2…...
WPF中对滚动条进行平滑滚动
有时候我们在动态添加内容时,需要将滚动条滚动到指定内容处。 一般我们会调用ScrollViewer的ScrollToVerticalOffset(垂直方向)函数和ScrollToHorizontalOffset(水平方向)函数来控制滚动条滚动到指定位置。 正常滚动效…...
深入xtquant:Python量化交易的桥梁与核心
深入xtquant:Python量化交易的桥梁与核心 🚀量化软件开通 🚀量化实战教程 在当今的金融市场中,量化交易已成为一种趋势。为了高效地进行策略开发和执行,选择合适的工具至关重要。xtquant,作为迅投官方开…...
Flutter 学习之旅 之 flutter 在 Android 端进行简单的打开前后相机预览 / 拍照保存
Flutter 学习之旅 之 flutter 在 Android 端进行简单的打开前后相机预览 / 拍照保存 目录 Flutter 学习之旅 之 flutter 在 Android 端进行简单的打开前后相机预览 / 拍照保存 一、简单介绍 二、简单介绍 camera 三、安装 camera 四、简单案例实现 五、关键代码 一、简单…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...
Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...
HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...
【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...
基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...
