对NENU研究生教务系统网站做自动化测试

2024-03-11 00:28

本文主要是介绍对NENU研究生教务系统网站做自动化测试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

       由上一篇博客可知(解决NENU研究生教务系统网站“不能创建对象”等兼容性问题-CSDN博客),我通过Tampermonkey脚本解决了NENU研究生教务系统网站在非IE内核浏览器中访问时“不能创建对象”的问题。

        在解决问题的过程中,为了Tampermonkey脚本的使用不影响研究生教务系统网站的功能使用,需要通过回归测试保证研究生教务系统网站的功能没有受影响。

        在总结了研究生教务系统的所有功能后,在杨贵福老师的建议下使用自动化测试工具Selenium对教务系统做了自动化测试。

        由于NENU研究生教务系统网站有较大变化,对网站总结的功能表格也随着改变。下表为现在NENU研究生教务系统网站的功能总结,也许以后还会有变化。

页面

子页面

功能

是否完成自动化测试

“培养方案”页面

“培养方案总纲”页面

进入“教学执行计划”页面

选择专业

选择年级

点击按钮

点击按钮

“教学周历管理”页面

“教学周历查询”页面

点击“学年学期”下拉框

选择学年学期

打印功能

“学生选课”页面

“学期课表查询”页面

选择“周次”

选择“学期”

点击按钮

选择复选框

点击

点击“打印课表(非合并)”

点击“打印课表(合并)”

     “成绩信息”页面

“成绩查询”页面

“学号”、“像”等一系列下拉框

文本框输入“学号”和“姓名”

点击按钮

“提出质疑”功能

“打印申请表”功能

切换页数按钮

切换页数文本框

切换页数按钮

点击“打印”按钮

选择打印条件

点击“确定”按钮

点击“取消”按钮

点击“切换”按钮

页面操作按钮

关闭页面

最小化页面

最大化页面

        在对教务系统网站做自动化回归测试时,学习到很多新的测试技术。

        大多数功能的测试使用Seleium提供的元素定位的方法(findElement()方法)、点击元素的方法(click())、在文本框中填入内容的方法(sendkeys())都可以实现,着重说一下比较难实现的点,也就是我在本次自动化测试中学习到的新的测试技术和遇到的测试难题。

1.Frame切换

1.1问题描述

        在定位图1所示页面中的左侧导航栏中的“培养方案总纲”选项时,总报定位不到元素的错误,如下图所示。

图1

1.2 解决过程        

        最初的工作重点放在检查代码上,反复检查代码并未发现任何问题。

        在网络上搜索,偶然发现有人在一篇博客中提到了切换iframe的问题,若iframe没有切换正确,那么元素无法被定位到。(博客链接为python 关于selenium模拟一页一页点击,出现定位错误的解决_no such element: unable to locate element: {"metho-CSDN博客)

        于是检查图1所示的源代码,在源代码中搜索“iframe”,发现包括“培养方案总纲”和“教学执行计划”的菜单确实在iframe标签下。如下图所示。

        通过参考官方文档(链接为Working with IFrames and frames | Selenium),明白了Selenium只能访问顶级document中的元素,若要与iframe或frame中的元素交互,需要切换到元素所在的iframe或frame下,类似于切换窗口的方式。

        WebDriver提供了3种切换iframe或frame的方式,分别是

  1. 使用WebElement
  2. 使用name或id
  3. 使用索引

        在测试代码中通过采用索引的方式切换到iframe中

driver.switchTo().frame(0);

        元素依然不能被成功定位到。

        检查网页代码后发现iframe标签中嵌套了frameset标签和frame标签,frameset标签不用使用switchTo()切换frame,而frame标签需要逐层切换。

        于是将代码修改为

driver.switchTo().frame(0);driver.switchTo().frame(0);

问题解决,可以成功通过selenium点击“培养方案总纲”和“教学执行计划”。

1.3结论

1.页面中有iframe标签或frame标签时,需要使用switchTo()方法切换到要定位元素的frame或iframe标签下,才可以定位到所要定位的元素。 

2.frameset标签不用使用switchTo()切换frame,而frame标签需要逐层切换。

 

2.窗口切换

todo

3.实现鼠标双击

todo

4.通过实例化Select类的对象选择下拉框的选项

todo

6.线程等待的重要性

todo

这篇关于对NENU研究生教务系统网站做自动化测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/796020

相关文章

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

Linux系统之lvcreate命令使用解读

《Linux系统之lvcreate命令使用解读》lvcreate是LVM中创建逻辑卷的核心命令,支持线性、条带化、RAID、镜像、快照、瘦池和缓存池等多种类型,实现灵活存储资源管理,需注意空间分配、R... 目录lvcreate命令详解一、命令概述二、语法格式三、核心功能四、选项详解五、使用示例1. 创建逻

Spring Boot从main方法到内嵌Tomcat的全过程(自动化流程)

《SpringBoot从main方法到内嵌Tomcat的全过程(自动化流程)》SpringBoot启动始于main方法,创建SpringApplication实例,初始化上下文,准备环境,刷新容器并... 目录1. 入口:main方法2. SpringApplication初始化2.1 构造阶段3. 运行阶

从入门到进阶讲解Python自动化Playwright实战指南

《从入门到进阶讲解Python自动化Playwright实战指南》Playwright是针对Python语言的纯自动化工具,它可以通过单个API自动执行Chromium,Firefox和WebKit... 目录Playwright 简介核心优势安装步骤观点与案例结合Playwright 核心功能从零开始学习

Python自动化批量重命名与整理文件系统

《Python自动化批量重命名与整理文件系统》这篇文章主要为大家详细介绍了如何使用Python实现一个强大的文件批量重命名与整理工具,帮助开发者自动化这一繁琐过程,有需要的小伙伴可以了解下... 目录简介环境准备项目功能概述代码详细解析1. 导入必要的库2. 配置参数设置3. 创建日志系统4. 安全文件名处

使用Python构建一个高效的日志处理系统

《使用Python构建一个高效的日志处理系统》这篇文章主要为大家详细讲解了如何使用Python开发一个专业的日志分析工具,能够自动化处理、分析和可视化各类日志文件,大幅提升运维效率,需要的可以了解下... 目录环境准备工具功能概述完整代码实现代码深度解析1. 类设计与初始化2. 日志解析核心逻辑3. 文件处

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

linux重启命令有哪些? 7个实用的Linux系统重启命令汇总

《linux重启命令有哪些?7个实用的Linux系统重启命令汇总》Linux系统提供了多种重启命令,常用的包括shutdown-r、reboot、init6等,不同命令适用于不同场景,本文将详细... 在管理和维护 linux 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文

使用Python进行GRPC和Dubbo协议的高级测试

《使用Python进行GRPC和Dubbo协议的高级测试》GRPC(GoogleRemoteProcedureCall)是一种高性能、开源的远程过程调用(RPC)框架,Dubbo是一种高性能的分布式服... 目录01 GRPC测试安装gRPC编写.proto文件实现服务02 Dubbo测试1. 安装Dubb