菜鸟学自动化测试(四)----selenium 命令之验证页面元素

本文介绍了Selenium中常用的UI验证方法,包括验证特定文本、元素存在与否及验证文本内容等。并通过实例展示了如何使用assertion和verification进行错误管理。

根据上一节计划,这里我们来学习一下如何验证页面元素。

----//验证页面元素

验证页面上的UI元素,是你在自动化测试案例过程中最常用到的特性。Selenese通过各种方式验证UI元素。

举例,你是否正在测试一下情况:

(1)一个UI元素存在于页面上某个位置;

(2)特定文本存在于页面上某个位置;

(3)特定文本存在于页面上指定位置;

如果你要测试文本标题,那么文本内容和它所在的页面顶部位置,测试案例都需要关心。如果你要测试主页上的某个图片,但是开发人员经常改变图片所在的位置,那么你只要测试特定图片是否存在于页面上某个位置就行了。

 

1.assertion或者verification?

断言(assertion)或者验证(verification)关系到如何管理“失败”。断言会使当前案例运行失败,并终止案例执行;验证也会使案例运行失败,但允许案例继续执行。

代码说明:

我们打开selenium的下载页面。验证代码页面中出现的“Downloads”文本标记。

第二行(assertTitle)和第三行(verifyText)都是验证页面时候有“Downloads”,但如果第二行出现错误,则程序终止运行。第三行出现错误,给出错误提示,但不影响第四行程序的运行。

 

2.verifyTextPresent命令

代码说明:

打开淘宝网首页,搜索框输入“手机”关键字,点击搜索按钮。我们在搜索后的页面中检查时候有“手机”文字。

verifyTextPresent命令用来验证特定的文本是否存在页面的某处。

Selenium在当前测试页面上搜寻和验证“手机”是否存在于某处。当你只关心页面上是否存在特定文本时使用。

 

3.verifyElementPresent命令

当测试特定UI元素是否存在、且不关心其内容时,使用verifyElementPresent命令,这一命令不检查文本,仅检查HTML tag。

代码说明:

打开百度首页,验证百度是否存在图片。//div/p/img 验证被<img>标识的图片在页面上是否存在。

为什么是//div/p/img?我们点击百度首页上面的图片查看元素。

查看图片代码:

看到图片所在位置的层次了吧!丫的,我整了白天才明白是这样子的。

还可以用verifyElementPresent命令检查链接、图片、分区等。

 

4.verifyText命令

      当文本和它的UI元素都要被测试时,使用verifyText命令,verifyText必须使用定位器,如果你选择XPath或者DOM定位器,就可以检查特定文本是否出现在页面上的特定位置(相对于其他元素而言)

 

 

<think> 首先,用户的问题是:“我想获取Python自动化测试习教程 请问Python自动化测试习教程”。这表明用户正在寻求习教程关于Python自动化测试。 根据系统级指令: - 所有行内数表达式必须使用$...$格式。 - 独立公式必须使用$$...$$格式并单独成段。 - LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 - 回答中引用的段落末尾自然地添加引用标识。 此外,用户提供了站内引用: - 引用[1]: 关于Python单元测试自动化教程,提到了doctest和unittest模块。 - 引用[2]: 展示了一个使用unittest模块的测试用例示例。 - 引用[3]: 关于pytest框架的用法。 - 引用[4]: 关于pip安装问题的建议。 用户说:“上述引用仅供参考,并不是用户真正的需求”,并强调“请尽可能多的参考用户上一次的问题和你的回答”。但在这个会话中,这是用户的第一个消息,所以上一次的问题可能是指这个会话的开头。回顾系统提示,用户说“参考用户上一次的问题和你的回答”,但在历史中,之前的消息是系统级指令和示例,没有交互历史。所以,我应该基于当前问题回答。 用户的核心需求是获取Python自动化测试习教程。 结构化我的回答: - 回答应该结构清晰,帮助用户逐步解决问题。 - 尽可能保证真实可靠。 - 最后生成相关问题。 关键元素: - 介绍Python自动化测试- 推荐教程资源。 - 基于引用,可以提到unittest和pytest等框架。 - 结束时生成相关问题。 回答大纲: 1. **引言**:简述Python自动化测试的重要性。 2. **核心教程推荐**: - 提到unittest模块作为基础(基于引用[1]和[2])。 - 提到pytest框架作为进阶(基于引用[3])。 - 推荐在线教程或资源。 3. **实用建议**: - 如何设置环境(引用[4]提到pip问题)。 - 提供示例或简要指导。 4. **结尾**:生成相关问题。 生成相关问题: - 根据系统指令,在结束时添加相关问题,类似示例中的“相关问题”。 - 问题应该与Python自动化测试相关。 确保语言是中文。 </think> ### Python自动化测试习教程指南 Python自动化测试是现代软件开发中不可或缺的环节,它通过脚本自动执行测试用例,提高效率和可靠性。核心内容包括单元测试、API测试和UI测试等,常用框架如unittest(内置于Python)和pytest(更灵活)。基于您的需求,我参考了站内资料,并结合可靠资源,为您提供一份结构化的习教程指南。教程侧重实践,我已过滤无关引用,确保内容真实可靠(如引用[1]强调了unittest作为基础框架的重要性[^1],引用[3]介绍了pytest的参数化测试功能[^3])。 #### 步骤1: 基础入门(推荐unittest) Python内置的unittest模块是自动化测试的起点,适合初者。它提供测试用例编写、断言和测试夹具等功能。 - **推荐教程资源**: - [Python官方unittest教程](https://docs.python.org/3/library/unittest.html):免费、权威,覆盖基础语法和示例。 - **实践示例**(参考引用[2]):创建一个简单的测试类。例如,测试数方法: ```python import unittest class MathMethod: def add(self, a, b): return a + b def sub(self, a, b): return a - b class TestMathMethod(unittest.TestCase): def test_add_two_num(self): res = MathMethod().add(3, 6) self.assertEqual(9, res) # 断言检查结果 def test_sub_two_num(self): res = MathMethod().sub(9, 8) self.assertEqual(1, res) if __name__ == '__main__': unittest.main() ``` 运行此脚本可直接测试功能。关键点:测试函数名必须以`test_`开头,便于unittest自动识别[^2]。 - **习要点**: - 了解测试夹具(setup/teardown)用于初始化资源。 - 使用`assertEqual`、`assertTrue`等断言方法验证预期结果。 - 教程时长:约2-3小时,可作为入门项目。 #### 步骤2: 进阶框架(推荐pytest) pytest框架更强大,支持参数化测试和数据驱动,适合复杂项目(如引用[3]所示的数据驱动测试[^3])。 - **推荐教程资源**: - [pytest官方文档](https://docs.pytest.org/en/stable/):详细教程,包括安装、配置和高级特性。 - **免费在线课程**: - [Udemy的Python自动化测试免费课程](https://www.udemy.com/course/python-automation-testing/):实操性强,覆盖pytest和Selenium- [菜鸟教程的pytest指南](https://www.runoob.com/python3/python-pytest.html):中文教程,分步解释。 - **实践示例**:实现参数化测试,避免重复代码(参考引用[3]): ```python import pytest def add(a, b): return a + b # 使用@pytest.mark.parametrize定义数据驱动测试 @pytest.mark.parametrize("a, b, expected", [(1, 1, 2), (2, 2, 4), (2, 3, 5)]) def test_add(a, b, expected): assert expected == add(a, b) ``` 运行命令:`pytest test_add.py`。优点:数据从外部文件加载,便于扩展。 - **习要点**: - 掌握pytest fixtures用于共享测试资源。 - 结合HTML报告生成工具(如HTMLTestRunner),提升可视化(引用[2]提到了类似工具[^2])。 - 教程时长:约4-5小时,建议先完成unittest基础。 #### 步骤3: 环境设置与常见问题 确保Python环境配置正确,避免pip问题(引用[4]提示了检查步骤[^4]): - **安装依赖**: - 确保pip可用:运行`pip --version`检查安装。 - 安装pytest:`pip install pytest`。 - 若pip问题: - 验证环境变量PATH是否包含Python Scripts路径。 - 如Scripts目录缺少pip.exe,重新安装Python(从[官方网站](https://www.python.org/downloads/)下载)。 - **综合资源推荐**: - **书籍**:《Python自动化测试实战》(中文版),系统讲解框架和案例- **YouTube频道**:如“Corey Schafer的Python测试教程”,有中文字幕。 - **实践项目**:从GitHub克隆模板项目,如[Python自动化测试示例仓库](https://github.com/awesome-python-testing),边边做。 #### 习路径总结 - **初者路线**:unittest基础 → pytest进阶 → 结合Selenium做UI测试。 - **预计时间**:1-2周可掌握基础,每天1小时练习。 - **注意事项**:优先选择带实战案例的教程,避免纯理论。引用[1]指出doctest适合简单测试,但对复杂项目有限[^1],因此建议从unittest/pytest入手。 相关问题: 1. 如何选择unittest和pytest框架的不同应用场景? 2. Python自动化测试中如何处理API测试的认证问题? 3. 自动化测试报告生成工具有哪些推荐?
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虫师2020

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值