首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
聊聊Web自动化测试:黑盒、白盒、α测试、β测试、冒烟测试、回归测试
Selenium三剑客:WebDriver、IDE、Grid一网打尽
Selenium开发环境搭建
下载安装浏览器驱动:教你解决最麻烦的版本匹配问题
第一个Selenium测试:Selenium测试流程、源码分析
实现元素定位:掌握Selenium八大定位方法
通过打车生活案例,深入剖析WebDriver运行原理
掌握WebDriver核心方法和属性的使用
掌握WebElement核心方法和属性的使用
form表单:熟练掌握form表单操作步骤
掌握checkbox和radiobutton的定位技巧
下拉列表:熟练使用Select类,来实现下拉列表定位
弹框处理:掌握alert、confirm、prompt三种弹出的用法
Selenium三种等待方式:剖析原理、用法和应用场景
Selenium等待条件:掌握17种元素等待条件
掌握鼠标单击、双击、右击,键盘输入、键盘组合键的应用
熟练执行JavaScript的方法和技巧,掌握JavaScript操作滚动条
Selenium屏幕截图:实现屏幕截屏、按照日期时间格式保存图片
掌握frame、iframe定位,熟练frame的切入和切出
下载安装Selenium IDE:下载安装Chrome、Firefox插件IDE
熟练Selenium IDE菜单栏、工具类、命令窗口的使用
Selenium IDE实现录制和回放及脚本导出
项目环境搭建:安装JDK、MySQL、Tomcat和测试系统
需求分析和用例设计:深度挖掘需求,掌握测试用例设计范式
项目架构设计:掌握分层设计思想,合理设计目录和包结构
解决验证码问题-方案一:使用pytesseract和Pillow实现验证码识别
解决验证码问题-方案二:通过第三方AI库识别验证码
实现工具类:设计获得验证码、随机字符串生成、cookie操作工具类
完成用户注册测试用例:解决验证码、等待弹框等复杂内容
完成用户登录测试用例:实现登录成功和失败测试
完成管理员登录测试用例:完成验证码正确和错误测试用例
完成文章分类测试用例:解决测试用例依赖问题
完成添加、删除文章测试用例
unittest简介:测试用例、测试套件、测试运行器、测试加载器
unittest中的方法:掌握各种setup、teardown和断言方法
测试用例、测试套件和测试加载器:掌握加载测试用例的四种方法
使用unittest重构测试用例:掌握使用unittest模块的方法和技巧
为项目添加测试报告:使用第三方模块实现测试报告
pytest框架简介:pytest安装、用例编写规则、执行用例
pytest标记:查找测试策略、标记测试函数
pytest参数化处理:使用参数化装饰器、解析列表、元组、字典等数据
pytest Fixture:使用fixture实现用例之间的调用
pytest setup 和 teardown
pytest allure生成测试报告
使用pytest重构项目:实现用例依赖、测试报告、数据参数化
logging模块简介:日志的作用、等级和常用函数
logging日志格式输出:日志发生的时间、文件、模块、行号等信息格式输出
logging模块四大组件:Logger、Handler、Formatter、Filter的用法
为项目添加日志:将日志应用到项目
使用csv模块读取CSV文件,使用pytest参数化实现DDT
使用json模块读取json文件,使用pytest参数化实现DDT
使用xlrd模块读取excel文件,使用pytest参数化实现DDT
Selenium读取数据库数据:将数据保存到数据库,实现数据驱动的测试
Selenium DDT:使用DDT模块实现数据驱动的测试
使用DDT思想重构项目:使用数据库保存数据,将数据驱动思想应用到项目
POM设计模式简介:理解页面-对象-模型设计模式,实现代码的松耦合
设计BasePage类:设计基类,提高项目的代码重用性
设计项目页面对应的PO类:使用POM设计模式设计PO类
设计项目测试用例:将POM设计模式应用到项目
Selenium Grid下载安装:配置Java运行环境,下载安装Selenium Grid
Selenium注册node节点
使用Selenium执行远程测试
Jenkins环境搭建:下载安装Jenkins
在Jenkins中运行项目
邮件通知:实现邮件通知功能
定时运行项目,实现真正的自动化测试
当前位置:
首页>>
技术小册>>
Selenium自动化测试实战
小册名称:Selenium自动化测试实战
### 章节标题:Form表单:熟练掌握Form表单操作步骤 在Web自动化测试中,Form表单的处理是不可或缺的一部分,它涉及用户输入、选择、验证等多个环节,是模拟用户与网页交互的核心。本章节将深入解析如何在使用Selenium进行自动化测试时,熟练掌握Form表单的各项操作步骤,包括定位表单元素、输入数据、选择下拉框选项、处理复选框和单选按钮、提交表单以及验证表单提交结果等。 #### 一、引言 Form表单是Web页面上用于收集用户输入信息的一种重要方式,它包含了文本输入框、密码框、单选按钮、复选框、下拉选择框等多种输入类型。在自动化测试中,正确且高效地处理这些表单元素对于验证Web应用的交互逻辑、数据验证规则等至关重要。 #### 二、Form表单元素的基本定位 在使用Selenium进行自动化测试之前,首先需要学会如何准确地定位到Form表单中的各个元素。Selenium提供了多种元素定位策略,包括但不限于ID、Name、XPath、CSS Selector、ClassName、Link Text和Partial Link Text等。 - **ID和Name**:如果表单元素的ID或Name属性是唯一的,那么使用`find_element_by_id()`或`find_element_by_name()`方法定位是最直接且高效的方式。 - **XPath**:XPath是一种在XML文档中查找信息的语言,也广泛用于HTML文档。它可以提供强大的定位能力,特别是在处理复杂或动态生成的页面元素时。 - **CSS Selector**:CSS选择器是另一种强大的定位方式,它通过CSS样式规则来定位元素。与XPath相比,CSS Selector在性能上通常更优,且语法更简洁。 #### 三、输入数据 一旦成功定位到表单的输入元素(如文本框、密码框等),就可以使用Selenium的`send_keys()`方法向其中输入数据了。这个方法模拟了键盘输入,可以连续输入字符串、数字、特殊字符等。 ```python # 假设已定位到文本输入框 text_box = driver.find_element_by_id("user_input") text_box.send_keys("Selenium自动化测试") ``` #### 四、选择下拉框选项 对于下拉选择框(`<select>`元素),Selenium提供了两种主要的方式来选择选项:通过`Select`类或使用JavaScript。 - **使用`Select`类**:首先,需要导入`Select`类,然后使用`select_by_value()`、`select_by_index()`或`select_by_visible_text()`方法来选择下拉框中的选项。 ```python from selenium.webdriver.support.ui import Select # 定位到下拉选择框 select_box = driver.find_element_by_id("select_option") # 使用Select类 select = Select(select_box) select.select_by_visible_text("选项1") ``` - **使用JavaScript**:在某些情况下,如果直接使用`Select`类无法达到预期效果(如处理动态加载的选项),可以使用`execute_script()`方法执行JavaScript代码来选择选项。 ```python # 使用JavaScript选择下拉框选项 driver.execute_script("arguments[0].value = '选项2';", select_box) ``` #### 五、处理复选框和单选按钮 - **复选框(Checkbox)**:复选框允许用户选择多个选项。在Selenium中,可以通过点击复选框来模拟用户的选择行为。如果复选框是未选中的,则使用`click()`方法会将其选中;如果已选中,则再次点击会取消选中。 ```python checkbox = driver.find_element_by_id("checkbox_id") checkbox.click() # 点击复选框 ``` - **单选按钮(Radio Button)**:单选按钮用于在一组选项中选择一个。与复选框类似,通过点击单选按钮来模拟用户的选择。由于单选按钮的特性,点击任何一个已选中的单选按钮都会取消其他选项的选中状态,并选中当前点击的选项。 ```python radio_button = driver.find_element_by_id("radio_button_id") radio_button.click() # 点击单选按钮 ``` #### 六、提交表单 在填写完表单的所有必要信息后,通常需要提交表单以将数据发送到服务器。在HTML中,表单的提交通常通过点击提交按钮(`<input type="submit">`、`<button type="submit">`)或表单自身的`submit()`方法实现。 - **点击提交按钮**: ```python submit_button = driver.find_element_by_id("submit_button_id") submit_button.click() ``` - **使用表单的`submit()`方法**(如果可以直接定位到表单元素): ```python form = driver.find_element_by_id("form_id") form.submit() ``` #### 七、验证表单提交结果 提交表单后,需要验证表单的提交是否成功,以及服务器返回的结果是否符合预期。这通常涉及检查页面跳转、页面元素变化、显示的消息提示或数据库中的记录等。 - **检查页面跳转**:可以通过获取当前URL或页面标题来验证是否成功跳转到预期页面。 - **检查页面元素**:使用断言(如`assert`)来验证页面上是否出现了预期的元素或消息。 - **数据库验证**:如果测试环境允许,可以直接查询数据库来验证提交的数据是否正确存储。 #### 八、实战案例分析 为了更好地理解上述知识点,下面通过一个简单的实战案例来演示如何综合运用这些技能来自动化测试一个包含Form表单的Web页面。 **案例描述**:测试一个用户注册页面,包括输入用户名、密码、邮箱,选择性别,同意用户协议,并提交表单。提交后,验证是否成功跳转到注册成功页面,并显示相应的欢迎信息。 **实现步骤**: 1. 打开注册页面。 2. 定位并输入用户名、密码、邮箱。 3. 选择性别(使用`Select`类或JavaScript)。 4. 点击同意用户协议复选框。 5. 提交表单。 6. 验证是否跳转到注册成功页面,并显示欢迎信息。 #### 九、总结 本章节详细讲解了在使用Selenium进行自动化测试时,如何熟练掌握Form表单的各项操作步骤。从元素定位、输入数据、选择下拉框选项、处理复选框和单选按钮、提交表单到验证表单提交结果,每一步都提供了具体的实现方法和注意事项。通过实战案例分析,进一步巩固了理论知识,为在实际项目中高效处理Form表单打下了坚实的基础。
上一篇:
掌握WebElement核心方法和属性的使用
下一篇:
掌握checkbox和radiobutton的定位技巧
该分类下的相关小册推荐:
Python数据分析与挖掘实战(上)
Python与办公-玩转Word
Python爬虫入门与实战开发(上)
Python合辑13-面向对象编程案例(上)
剑指Python(万变不离其宗)
剑指Python(磨刀不误砍柴工)
Python合辑5-格式化字符串
Python合辑2-字符串常用方法
Python合辑12-面向对象
Python与办公-玩转Excel
Python3网络爬虫开发实战(下)
Python3网络爬虫开发实战(上)