软件测试(Web自动化测试)(二)

一.Selenium WebDriver的基本应用

(一)安装浏览器驱动

1.关闭浏览器的自动更新功能

以Windows7(64位)操作系统为例,讲解如何关闭Chrome浏览器的自动更新。首先按下快捷键“Win+R”,打开运行对话框,然后在该对话框中输入“taskschd.msc”,单击“确定”按钮,此时会打开“任务计划程序”窗口,选中名称为“GoogleUpdateTaskUser....”的条目,右击选择“禁用”选项,Chrome浏览器的自动更新功能即可处于关闭状态。

(二)使用浏览器定位页面元素

1.使用Chrome浏览器定位页面元素

2.使用Firefox浏览器定位页面元素

在Firefox浏览器开发者工具的“查看器”中可以看到“登录”按钮的class属性的值位“J-login-submit”,name属性的值为“sbtbutton”。

(三)使用Selenium定位页面元素

单个元素的定位

1.id定位

id属性值一般不会重复,使用id定位元素的前提条件是元素中必须有id属性名。

2.name定位

3.class name定位

在HTML页面中,class属性主要用于渲染页面的样式。

4.tag name定位

tag name定位是通过元素的标签名来定位元素。

5.link text定位

link text定位是通过超链接的文本内容来定位元素

find_element_by_link_text()方法中的参数text表示超链接的全部文本内容。

6.partial link text定位

find_element_by_partial_link_text()方法中的参数link_text表示超链接文本的部分或全部内容。

7.xpath定位

xpath(XML Path Language的简称)定位是基于元素的路径定位。

(1)xpath通过绝对路径定位元素

绝对路径是从最外层元素到指定元素之间所有经过元素层级的路径。绝对路径的写法是以单斜杠开头逐级开始编写,不能跳级。例如,/html/body/div/p[1]/input,表示以/html根节点开始,使用单斜杠来分隔元素层级,如果某个层级有多个相同的标签,就按照前后顺序确定是第几个,再写上相应数字。例如p[1]表示当前层级的第一个<p>标签。由于绝对路径对页面结构要求比较严格,所以不建议使用。

(2)xpath通过相对路径定位元素

相对路径可匹配任意层级的元素,不限制元素的位置。相对路径的写法是以双斜杠开头,双斜杠后面紧跟着元素名称,不确定的元素名称可以使用*代替。例如,//input或//*。

常用的xpath定位元素写法和说明

xpath定位元素写法说明
//span/input[1]通过索引定位,表示选取第一个与表达式//span/input匹配的元素
//span/input[last()]通过索引定位,表示选取最后一个与表达式//span/input匹配的元素
//input[@id='dl']通过id属性定位,表示定位id属性值为dl的元素
//input[@name='mz']通过name属性定位,表示定位name属性值为mz的元素
//input[@class='s_ ipl']通过class属性定位,表示定位class属性值为s_ipl的元素

//*[@id='kw']

通过通配符*定位,表示定位所有id属性值为kw的元素
//a(@name='book' or text()='music']通过逻辑表达式定位,表示定位name属性值为book或者文本内容为music的元素
/a[contains(@href='新闻')and text()='新闻联播']通过逻辑表达式定位,表示定位 href属性值中包含“新闻”并且文本内容中包含“新闻联播”的元素
/html/body/input[[1]通过绝对路径定位,表示定位/html/body/input 下的第一个<input>标签

8.css定位

在选择元素的id、name、或class属性进行定位时,要确保这些属性的值在页面是唯一的,否则程序将出现定位不到元素的问题。

(四)获取元素的常用信息

1.获取元素尺寸

2.获取元素文本

3.获取元素属性值

(1)元素属性值获取

在Web自动化测试时,可以通过获取元素的属性值进行断言。获取元素属性值的方法是get_attribute()。

(2)判断元素是否可用

语法格式:is_enabled()

(3)判断元素是否可见

语法格式:is_displayed()

(4)判断元素是否被选中

语法格式:is_selected()

(五)鼠标的常用操作

方法说明
perform()鼠标执行,所有的鼠标操作都需要调用该方法才可以生效
click()鼠标单击
context_click()鼠标右键单击
double_click()鼠标双击
drag_and_drop(source,target)鼠标拖拽,第一个参数source表示源元素,即被拖拽的元素,第二个参数target表示目标元素
move_to_element()鼠标悬停

(六)键盘的常用操作

要先导入Keys类

from selenium.webdriver.common.keys import Keys
方法说明
send_keys(Keys.CONTROL,‘a’)表示全选(Ctr+A)
send_keys(Keys.CONTROL,’c‘)表示复制(Ctrl+C)
send_keys(Keys.CONTROL,’x‘)

表示剪切(Ctrl+X)

send_keys(Keys.CONTROL,’v’)

表示粘贴(Ctrl+V)

send_keys(Keys.BACK_SPACE)

表示删除键(Backspace)

send_keys(Keys.SPACE)

表示空格键(Space)

send_keys(Keys.TAB)

表示制表键(Tab)

send_keys(Keys.ESCAPE)

表示回退键(Esc)

send_keys(Keys.ENTER)

表示回车键(Enter)

 

(七)浏览器的常用操作

1.浏览器窗口的设置

2.浏览器的前进与后退

浏览器前进:driver.forward()

浏览器后退:driver.back()

3.浏览器页面的刷新

刷新浏览器页面:driver.refresh()

4.获取浏览器页面的标题和URL

获取浏览器页面的标题:driver.title

获取浏览器也页面的URL:driver.current_url

5.浏览器窗口的关闭

关闭浏览器的所有窗口:driver.quit()

关闭浏览器的当前窗口:driver.close()

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

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

相关文章

【备战软考(嵌入式系统设计师)】02-计算机指令

指令集 我们计算机要执行程序&#xff0c;本质上是执行一条条的指令&#xff0c;而指令是从指令集中取出的&#xff0c;目前常见的指令集有CISC&#xff08;Complex Instruction Set Computer&#xff0c;复杂指令集&#xff09;和RISC&#xff08;Reduced Instruction Set Co…

2024最新智慧医疗智慧医院大数据展示,医院数据采集概况、医院指标分析、医院就诊趋势分析等。源代码免费下载。

系列文章目录 【复制就能用1】2分钟玩转轮播图,unslider的详细用法 【复制就能用2】css实现转动的大风车&#xff0c;效果很不错。 【复制就能用3】2分钟自己写小游戏&#xff1a;剪刀石头布小游戏、扫雷游戏、五子棋小游戏 【复制就能用4】2024最新智慧医疗智慧医院大数据…

c++并查集

文章目录 前言一、并查集1、并查集原理2、并查集实现3、并查集应用1.省份数量2.等式方程的可满足性 前言 一、并查集 1、并查集原理 在一些应用问题中&#xff0c;需要将n个不同的元素划分成一些不相交的集合。开始时&#xff0c;每个元素自成一个单元素集合&#xff0c;然后…

应急行业的智能安全帽(高端)

前面介绍了低端、中端安全帽&#xff0c;接着再讲讲高端安全帽。做高端安全帽的企业非常少&#xff0c;估计一只手都数的出来。确实也和智能安全帽这个领域体量有关系&#xff0c;并且他有一个新的“劲敌”——智能眼镜从其他领域瓜分原属于他的市场&#xff0c;这些都是题外话…

SpringBoot引入Layui样式总是出现404

一般出现Layui样式文件如css&#xff0c;js404的错误 解决方案 &#xff08;1&#xff09;首先将其中的静态资源下载resources/static中 &#xff08;2&#xff09;在启动类中重写方法 package com.gq.booksystem;import org.mybatis.spring.annotation.MapperScan; import …

【ETAS CP AUTOSAR工具链】RTE层基本概念与开发流程

本篇文章续接上篇文章【ETAS CP AUTOSAR工具链】基本概念与开发流程&#xff0c;继续按上篇文章描述的ETAS CP工具链进行开发的基本框架&#xff0c;讲述了“RTE集成与配置”这部分的基本概念与开发流程。 RTE&#xff08;Runtime Environment&#xff09;处于应用层与基础软件…

【Godot4.2】自定义Todo清单类 - myTodoList

概述 在写myList类的时候&#xff0c;就想到可以写一个类似的Todo清单类。 基础思路 本质还是在内部维护一个数组&#xff0c;在其基础上进行增删改查操作的封装为了方便存储数据&#xff0c;编写一个自定义内置类TodoItem&#xff0c;内部数组就变成了Array[TodoItem]类型的…

Git | 远程操作

Git | 远程操作 文章目录 Git | 远程操作0、分布式版本控制系统概念1、创建远程仓库2、克隆远程仓库https方式ssh方式 3、推送至远程仓库4、本地拉取远程仓库5、配置Git忽略特殊文件给命令配置别名 6、标签管理创建标签操作标签 0、分布式版本控制系统概念 Git是一个分布式版本…

Git--分布式版本控制系统

目录 一、理解分布式版本控制系统二、远程仓库三、克隆远程仓库四、向远程仓库推送五、拉取远程仓库六、配置Git七、给命令配置别名八、创建标签九、操作标签 一、理解分布式版本控制系统 我们⽬前所说的所有内容&#xff08;⼯作区&#xff0c;暂存区&#xff0c;版本库等等&a…

24深圳杯AC题完整思路+可执行代码+参考论文!!!!

比赛题目的完整版思路可执行代码数据参考论文都会在第一时间更新上传的&#xff0c;大家可以参考我往期的资料&#xff0c;所有的资料数据以及到最后更新的参考论文都是一次付费后续免费的。注意&#xff1a;&#xff08;建议先下单占坑&#xff0c;因为随着后续我们更新资料数…

three.js 学习笔记 | 光线投射技术 - 包围盒(碰撞检测)

文章目录 three.js 学习笔记光线投射技术实现3D场景交互事件 THREE.Raycaster坐标系的转换案例&#xff1a;选中的模型变为红色 包围盒Box3 - 碰撞检测AABB包围盒辅助器Box3Helper案例1&#xff1a;创建AABB包围盒/包围球computeBoundingBox与boundingBox 搭配使用&#xff0c;…

【数据结构】二叉树(带图详解)

文章目录 1.树的概念1.2 树的结构孩子表示法孩子兄弟表示法 1.3 相关概念 2.二叉树的概念及结构2.1 二叉树的概念2.2 数据结构中的二叉树-五种形态2.3 特殊的二叉树2.4 二叉树的存储结构顺序存储链式存储 2.5 二叉树的性质 3. 堆3.1 堆的定义3.2 堆的实现堆的结构堆的插入向上调…

springcloud按版本发布微服务达到不停机更新的效果

本文基于以下环境完成 spring-boot 2.3.2.RELEASEspring-cloud Hoxton.SR9spring-cloud-alibaba 2.2.6.RELEASEspring-cloud-starter-gateway 2.2.6.RELEASEspring-cloud-starter-loadbalancer 2.2.6.RELEASEnacos 2.0.3 一、思路 实现思路&#xff1a; 前端项目在请求后端接…

SVN--基本原理与使用(超详细)

目录 一、SVN概述二、SVN服务端软件安装三、SVN服务端配置四、SVN客户端软件安装与使用五、SVN三大指令六、SVN图标集与忽略功能6.1 图标集6.2 忽略功能 七、SVN版本回退八、SVN版本冲突九、SVN配置多仓库与权限控制9.1 配置多仓库9.2 权限控制 十、服务配置与管理十一、模拟真…

Java | Leetcode Java题解之第52题N皇后II

题目&#xff1a; 题解&#xff1a; class Solution {public int totalNQueens(int n) {Set<Integer> columns new HashSet<Integer>();Set<Integer> diagonals1 new HashSet<Integer>();Set<Integer> diagonals2 new HashSet<Integer>…

手写文本识别系统的最佳实践

手写文本识别系统的最佳实践 摘要IntroductionRelated WorkProposed HTR SystemConvolutional Backbone:Flattening Operation:Recurrent Head:CTC shortcut: Best Practices for a Handwritten Text Recognition System 摘要 手写文本识别在近年来随着深度学习及其应用的兴起…

文件夹惊变文件?揭秘原因及解决方案

在日常工作和生活中&#xff0c;电脑已经成为我们不可或缺的助手。然而&#xff0c;有时我们会遇到一些令人困惑的问题&#xff0c;比如&#xff0c;文件夹突然变成了文件。这听起来可能有些匪夷所思&#xff0c;但它确实会发生&#xff0c;而且给用户带来了不小的麻烦。当熟悉…

java-spring-mvc(知识点讲解-第一天)-欢迎各位大佬提建议

目录 &#x1f383;MVC定义 &#x1f9e8;创建工程 &#x1f3a8;SpringMVC处理请求 请求分类及处理方式 静态请求 处理静态前端页面方式 动态请求 处理动态前端页面方式 ⚙小试牛刀 &#x1f3c6;常见问题 &#x1f4cc;HTTP协议 超文本传输协议 请求 &#x1f383;MVC…

Web前端开发 小实训(二) 简易计算器

实训目的 学生能够使用函数完成简易计算器编写 操作步骤 1、请将加减乘除四个方法生成为以下函数&#xff0c;且有返回值 中文英语加法add减法subtract乘法multi除法division次幂pow()平方根sqrt() 提示&#xff1a; 除法中的除数不能为0&#xff01; 参考代码&#xff1…

在线培训考试系统在线考试功能注意事项

在线培训考试系统在线考试功能注意事项 考试前务必注意是否开启防切屏、摄像头监考等防作弊措施&#xff0c;系统一旦检测到触发了疑似作弊行为会立刻自动交卷&#xff0c;考试终止&#xff1b; 答题者准备好后&#xff0c;可点击“开始答题”按钮进入考试&#xff0c;注意考…