Selenium的自动化测试技巧有多少?【建议收藏】

Selenium是一个用于自动化Web应用程序测试的工具。它提供了一组API,允许用户与Web浏览器进行交互,来执行各种自动化测试任务。本文将从零开始,详细介绍Selenium的自动化测试技巧。

第一步:安装Selenium

首先,您需要安装Selenium WebDriver库和所需的浏览器驱动程序。您可以通过pip命令来安装Selenium:


pip install selenium 

然后,您需要下载并配置浏览器驱动程序。Selenium支持各种浏览器,如Chrome、Firefox、Safari等。您可以从相应的浏览器官方网站上下载并安装对应的驱动程序。

第二步:启动浏览器并打开网页

在编写测试脚本之前,您需要启动浏览器,并通过WebDriver创建一个浏览器实例。接下来,您可以使用WebDriver的get()方法来打开一个网页。以下是一个示例代码:


from selenium import webdriver

# 创建一个Chrome浏览器实例
driver = webdriver.Chrome()

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

第三步:定位元素

Selenium提供了一系列方法来定位网页中的元素,比如按ID、class、标签名、XPath等进行定位。您可以使用find_element()方法来查找单个元素,或者使用find_elements()方法来查找多个元素。

以下是一些常用的定位方法示例:

# 按ID定位元素
element = driver.find_element_by_id("element_id")

# 按class定位元素
element = driver.find_element_by_class_name("element_class")

# 按标签名定位元素
element = driver.find_element_by_tag_name("element_tag")

# 使用XPath定位元素
element = driver.find_element_by_xpath("//element_xpath")
 

第四步:与元素交互

定位到元素后,您可以使用元素对象的方法来与元素进行交互。以下是一些常用的元素交互方法:


# 点击元素
element.click()

# 输入文本到输入框
element.send_keys("text")

# 获取元素文本
text = element.text

# 获取元素属性值
value = element.get_attribute("attribute_name")

# 判断元素是否显示
is_displayed = element.is_displayed()
 

第五步:执行操作序列

在某些情况下,您可能需要进行一系列连续的操作。Selenium提供了ActionChains类,可以执行一系列操作,比如鼠标移动、按键操作等。

以下是一个示例代码:


from selenium.webdriver.common.action_chains import ActionChains

# 创建ActionChains对象
actions = ActionChains(driver)

# 执行操作序列
actions.move_to_element(element1).click().send_keys("text").perform()

第六步:处理弹窗和iframe

在自动化测试中,通常需要处理弹窗和iframe。Selenium提供了switch_to.alert()方法来处理弹窗,并提供了switch_to.frame()方法来切换到iframe。

以下是一个示例代码:


# 处理弹窗
alert = driver.switch_to.alert
alert.accept()  # 点击确认按钮
alert.dismiss()  # 点击取消按钮

# 切换到iframe
driver.switch_to.frame("iframe_name")
driver.switch_to.default_content()  # 切换回主文档

第七步:断言和验证

在进行自动化测试时,通常需要对测试结果进行断言和验证。Selenium提供了一些方法来进行断言和验证,比如assert和assertEqual。

以下是一个示例代码:

# 断言元素是否存在
assert driver.find_element_by_id("element_id").is_displayed()  # 判断元素是否显示

# 验证页面标题是否正确
assert "Page Title" in driver.title

# 验证页面URL是否正确
assert "https://www.example.com" in driver.current_url
 

第八步:等待元素加载

在自动化测试中,有时需要等待元素加载完成。Selenium提供了一些方法来实现元素等待,比如implicitly_wait()和WebDriverWait。

以下是一个示例代码:

# 隐式等待,最多等待10秒
driver.implicitly_wait(10)

# 显式等待,等待元素出现后执行操作
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

element = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.ID, "element_id"))
)
 

第九步:截图和日志记录

在自动化测试中,截图和日志记录对于问题排查和测试报告非常重要。Selenium提供了一些方法来实现截图和日志记录。

以下是一个示例代码:

# 截图
driver.save_screenshot("screenshot.png")

# 日志记录
import logging
driver.get_log("browser")
logging.warning("Warning message")
 

第十步:清理和退出

在测试完成后,您需要进行清理和退出操作,释放资源和关闭浏览器。

以下是一个示例代码:


# 清理操作
driver.delete_all_cookies()

# 退出操作
driver.quit()

通过这篇文章,您已经了解了从零开始的Selenium自动化测试技巧,包括安装Selenium、启动浏览器、定位元素、与元素交互、执行操作序列、处理弹窗和iframe、断言和验证、等待元素加载、截图和日志记录、清理和退出等。希望这些技巧对您的自动化测试工作有所帮助!最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【鸿蒙学习笔记】Stage模型工程目录

官方文档:应用配置文件概述(Stage模型) 目录标题 FA模型和Stage模型工程级目录模块级目录app.json5module.json5程序执行流程程序基本结构开发调试与发布流程 FA模型和Stage模型 工程级目录 模块级目录 app.json5 官方文档:app.j…

WAIC:生成式 AI 时代的到来,高通创新未来!

目录 01 在终端侧算力上,动作最快的就是高通 02 模型优化,完成最后一块拼图 在WAIC上,高通展示的生成式AI创新让我们看到了未来的曙光。 生成式 AI 的爆发带来了意想不到的产业格局变化,其速度之快令人惊叹。 仅在一个月前&…

android之蓝牙遥控器新增键值

文章目录 简述连接蓝牙代码流程总结简述 使用android 10平台来适配蓝牙遥控器新增的键值 连接蓝牙 当使用遥控器与蓝牙进行配对成功后,就可以通过getevent获取蓝牙打印的信息,如下所示 其中000700a0是发送过来的协议(0007)和码值(00a0)的组合。0xfa是驱动定义好的值,如果…

AI智能歌曲创作源码系统 前后端分离 带完整的安装代码包以及搭建教程

系统概述 本AI智能歌曲创作源码系统集成了深度学习、自然语言处理和音乐理论,旨在通过用户输入的关键词、情感色彩或音乐片段,自动生成具有创意且风格多样的音乐作品。系统核心由两大部分构成:前端用户界面与后端音乐生成引擎。前端负责接收…

什么是 VueQuill(前端的富文本编辑器)?

什么是 VueQuill? 1. 简介 VueQuill 是 Vue.js 的一个富文本编辑器插件,它基于 Quill 编辑器构建,提供了简洁且功能强大的富文本编辑功能。Quill 是一个现代化的富文本编辑器,提供丰富的文本编辑能力,支持多种格式和…

【学习笔记】程序设计竞赛

程序设计竞赛 文章目录 程序设计竞赛0x00 基本操作指南0x01 算法分析0x02 STL和基本数据结构栈队列集合map 0x03 排序插入排序归并排序(Merge Sort)快速排序 0x04 搜索技术BFSDFS回溯与剪枝 深度迭代ID A*A star双向广搜 0x05 递推方程0x06 高级数据结构并查集二叉树…

【强化学习的数学原理】课程笔记--3(蒙特卡洛方法)

目录 蒙特卡洛方法MC Basic算法sparse reward MC Greedy 算法样本使用效率MC ϵ \epsilon ϵ-Greedy 算法一些例子 蒙特卡洛方法 第二节 推导贝尔曼最优公式中的: q π k ( s , a ) ∑ r P ( r ∣ s , a ) r γ ∑ s ′ P ( s ′ ∣ s , a ) v π k ( s ′ ) q…

CMS Made Simple v2.2.15 远程命令执行漏洞(CVE-2022-23906)

前言 CVE-2022-23906 是一个远程命令执行(RCE)漏洞,存在于 CMS Made Simple v2.2.15 中。该漏洞通过上传头像功能进行利用,攻击者可以上传一个经过特殊构造的图片文件来触发漏洞。 漏洞详情 CMS Made Simple v2.2.15 中的头像上…

NAS 必备导航页 Homepage 外观简约但功能丰富

本文首发于只抄博客,欢迎点击原文链接了解更多内容。 前言 NAS 上的应用部署多了之后,不同的服务对应的端口很难记住,在内网中使用,一般也不会绑定域名。 此时就需要有一个导航页将 NAS 上部署的所有服务都罗列出来,方便我们直接点击访问对应的服务。 今天给大家介绍的…

电商利器——淘宝商品月销量API接口解析

在电商时代,数据就是金钱。对于淘宝商家而言,掌握商品的销量数据无异于掌握了市场的脉搏。如今,淘宝商品月销量API接口的出现,联讯数据让商家如虎添翼,能够更加精准地把握市场动态,优化商品策略。 淘宝商…

强技能 展风采 促提升——北京市大兴区餐饮行业职工技能竞赛精彩呈现

6月19日,由大兴区总工会、区商务局、青云店镇人民政府联合主办,区服务工会、区餐饮行业协会承办的“传承中国技艺,打造新一代餐饮工匠”2024年大兴区餐饮行业职工职业技能竞赛决赛在北京华联创新学习中心隆重开幕。区总工会副主席郝泽宏&…

力扣5----最长回文子串

给你一个字符串 s,找到 s 中最长的回文子串 示例 1: 输入:s "babad" 输出:"bab" 解释:"aba" 同样是符合题意的答案。示例 2: 输入:s "cbbd" 输出…

均匀采样信号的鲁棒Savistky-Golay滤波(MATLAB)

S-G滤波器又称S-G卷积平滑器,它是一种特殊的低通滤波器,用来平滑噪声数据。该滤波器被广泛地运用于信号去噪,采用在时域内基于多项式最小二乘法及窗口移动实现最佳拟合的方法。与通常的滤波器要经过时域-频域-时域变换…

Docker:Docker网络

Docker Network 是 Docker 平台中的一项功能,允许容器相互通信以及与外界通信。它提供了一种在 Docker 环境中创建和管理虚拟网络的方法。Docker 网络使容器能够连接到一个或多个网络,从而使它们能够安全地共享信息和资源。 预备知识 推荐先看视频先有…

ABAP 生成word文档

1.创建模板 通过开发工具->空间->格式文本为word添加变量 选中要设为变量的文本,点击格式文本,然后在属性页签设置变量名 模板使用示例参考ZABAPDOCX包下的模板 2. 代码生成 参考ZABAPDOCX包下示例程序,可直接执行下载word文档 如果…

分支与循环(二)

目录 1.switch语句 1)switch语法形式 2)if语句和switch语句的对比 3) switch语句中的break 4) switch语句中的default 5) switch语句中的case和default的顺序问题 2.while循环 1) if 和 while的对比 2) while语句的执行流程​编辑 3)while循环的…

76 4G模组 境外拨号入网注意

1 引言 最近朋友把国内的设备拿到新加坡了,然后发现原本国内可以使用的设备无法在异国他乡联网,所以就叫我来看看,发现是附网返回状态、入网APN发生了改变导致的。另外,如果在境外使用国产4G模组拨号入网,也需要关注4G…

大语言模型与知识图谱结合发展方向

引言 在人工智能的发展历程中,大语言模型(LLM)的出现标志着一个重要的转折点。随着深度学习技术的突破和计算能力的提升,LLM以其前所未有的规模和复杂性,开启了迈向人工通用智能(AGI)的新浪潮。…

FastAPI+vue3+Primeflex教学20240706,渲染阶乘案例

子绝父相 相对定位是相对于自己原本的位置定位。 绝对定位,如果父元素设置了相对定位,则相对于父元素进行绝对定位,否则相对于最近的设置了相对定位的元素进行绝对定位,或者相对于根元素进行绝对定位。 定位有四个方向&#xff0…

Coze:如何开发你的第一个聊天机器人?

你好,我是三桥君。 我们要学习如何创建第一个聊天机器人?让AI工具成为我们的得力助手,帮助我们的工作。 如何创建Bot? 首先,点击首页里面的“创建Bot”按钮。 ​ “工作空间”我们选择个人空间。接下来是“Bot名称”…