当前位置: 首页 > news >正文

「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 主题的线下活动…...

【卡牌——二分】

题目 分析 发现答案具有二分性&#xff0c;果断二分答案 代码 #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的最后一章节&#xff0c;历经2个月的断断续续时间&#xff0c;终于学到了最后&#xff0c;总结&#xff0c;这次的学习历程&#xff0c;相对于学习51还是略出一些难度&#xff0c;也就是若你是非科班&#xff0c;学习起来还是有一定的难度的&#xff0c;…...

属性的设置

笔记 class Student:def __init__(self, name, gender):self.name nameself.__gender gender # self.__gender 是私有的实例属性# 使用property 修改方法&#xff0c;将方法转成属性使用propertydef gender(self):return self.__gender# 将我们的gender这个属性设置为可写属…...

本地部署Deepseek+Cherry Studio

为啥要本地部署deepseek&#xff1f; 因为给deepseek发送指令得到服务器繁忙的回馈&#xff0c;本地部署会运行的更快 1.Ollama安装与部署 Ollama是一个开源框架&#xff0c;专为在本地机器上便捷部署和运行大型语言模型&#xff08;LLM&#xff09;而设计 winR——cmd——ol…...

CMU15445(2023fall) Project #2 - Extendible Hash Index 匠心分析

胡未灭&#xff0c;鬓已秋&#xff0c;泪空流 此生谁料 心在天山 身老沧州 ——诉衷情 完整代码见&#xff1a; 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 参考网址&#xff1a;[Visual Studio Code Guide | GZTime’s Blog]. 下载安装 下载地址&#xff1a;Download Visual Studio Code - Mac, Linux, Windows. 注&#xff1a;推荐不更改安装位置&#xff0c;并且在附加任务中“其他”中的四项全部勾选&#xff0c;即将用…...

【前端基础】Day 5 CSS浮动

目录 1. 浮动 1.1 标准流&#xff08;普通流/文档流&#xff09; 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预览组件&#xff0c;支持公式显示&#xff0c;支持uniapp。 相关依赖 markdown-itmarkdown-it-mathjaxmarkdown-it-katexmarkdown-it-latexkatexgithub-markdown-css 组件源码 <!--* Description: markdown显示组件* Author: wa…...

互联网+房产中介+装修设计+物料市场+智能家居一体化平台需求书

一、项目概述 1.1 项目背景 随着互联网技术的飞速发展以及人们生活品质的显著提升&#xff0c;传统房产交易、装修设计、家居购物等领域暴露出诸多问题。信息不对称使得用户难以获取全面准确的信息&#xff0c;在房产交易中可能高价买入或低价卖出&#xff0c;装修时可能遭遇…...

Node.js定义以及性能优化

Node.js Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时&#xff0c;广泛用于构建高性能的网络应用。以下是一些常见的 Node.js 面试题及其解答&#xff0c;帮助你准备面试&#xff1a; 1. 什么是 Node.js&#xff1f; Node.js 是一个基于 Chrome V8 引擎的 JavaSc…...

浅谈流媒体协议以及视频编解码

流媒体协议介绍 流媒体协议用于传输视频、音频等多媒体数据&#xff0c;确保数据流畅地传输到用户设备。常见的流媒体协议包括 RTMP、HLS、DASH、WebRTC 等&#xff0c;每种协议具有不同的特点和适用场景。 1. RTMP (Real-Time Messaging Protocol) 定义&#xff1a;由 Adob…...

在 Windows 上配置 Ollama 服务并开放局域网访问

为了在局域网内共享 Ollama 服务&#xff0c;我们需要完成以下两步&#xff1a; 1、设置 Ollama 的环境变量 OLLAMA_HOST&#xff0c;使其监听局域网的 IP 地址。 &#xff08;1&#xff09; 配置 Ollama 服务的监听地址 Ollama 服务使用环境变量 OLLAMA_HOST 来指定监听的地…...

【六祎 - Note】消息队列的演变,架构图;备忘录; IBM MQ,RabbitMQ,Kafka,Pulsar

IBM MQ 于 1993 年推出。它最初称为 MQSeries&#xff0c;2002 年更名为 WebSphere MQ。2014 年更名为 IBM MQ。IBM MQ 是一款非常成功的产品&#xff0c;广泛应用于金融领域。其收入在 2020 年仍达到 10 亿美元。 RabbitMQ 架构与 IBM MQ 不同&#xff0c;更类似于 Kafka 的…...

常见AI写作工具介绍(ChatGPT 4o、DeepClaude、Claude 3.5 Sonnet 、DeepSeek R1等)

AI写作工具介绍 1. ChatGPT-4o ChatGPT-4o是OpenAI于2024年5月发布的最新旗舰模型&#xff0c;相比之前的版本&#xff0c;它在多模态支持和实时推理能力上有了显著提升。它能够处理和理解音频、图像和文本数据&#xff0c;适用于复杂的图像分析、语音识别等应用场景[1]。 2…...

WPF中对滚动条进行平滑滚动

有时候我们在动态添加内容时&#xff0c;需要将滚动条滚动到指定内容处。 一般我们会调用ScrollViewer的ScrollToVerticalOffset&#xff08;垂直方向&#xff09;函数和ScrollToHorizontalOffset&#xff08;水平方向&#xff09;函数来控制滚动条滚动到指定位置。 正常滚动效…...

深入xtquant:Python量化交易的桥梁与核心

深入xtquant&#xff1a;Python量化交易的桥梁与核心 &#x1f680;量化软件开通 &#x1f680;量化实战教程 在当今的金融市场中&#xff0c;量化交易已成为一种趋势。为了高效地进行策略开发和执行&#xff0c;选择合适的工具至关重要。xtquant&#xff0c;作为迅投官方开…...

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// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

Mac软件卸载指南,简单易懂!

刚和Adobe分手&#xff0c;它却总在Library里给你写"回忆录"&#xff1f;卸载的Final Cut Pro像电子幽灵般阴魂不散&#xff1f;总是会有残留文件&#xff0c;别慌&#xff01;这份Mac软件卸载指南&#xff0c;将用最硬核的方式教你"数字分手术"&#xff0…...

HBuilderX安装(uni-app和小程序开发)

下载HBuilderX 访问官方网站&#xff1a;https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本&#xff1a; Windows版&#xff08;推荐下载标准版&#xff09; Windows系统安装步骤 运行安装程序&#xff1a; 双击下载的.exe安装文件 如果出现安全提示&…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)

参考官方文档&#xff1a;https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java&#xff08;供 Kotlin 使用&#xff09; 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

【Oracle】分区表

个人主页&#xff1a;Guiat 归属专栏&#xff1a;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数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...

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…...