软件测试 -- 自动化测试(Selenium)

        在这里记录一下 自动化测试 -- Selenium 的一些基础知识点,只记录方法。

Selenium 浏览器操作

• get(): 打开浏览器
• getTitle(): 获取浏览器标题
• getCurrentUrl(): 获取当前页面的 URL 地址
• close(): 关闭浏览器
• quit(): 退出浏览器
• navigate().to(): 进入指定页面
• navigate().back(): 后退到上一个页面
• navigate().forward(): 前进到下一个页面
• refresh(): 刷新页面
• switchTo().window(): 切换窗口
• window().maximize():最大化
• window().fullscreen():全凭
• window().getSize():获取大小
• window().setSize(Dimension targetSize):设置大小
• window().getPosition():获取位置
• window().setPosition(Point targetPosition):设置位置

Selenium 元素定位(包含 Web 表单)

findElement 和 findElements

        findElement 和 findElements 都可以用于定位元素,它们都需要传入一个 By 类型,但是他们的返回值不同,区别如下:

        • List findElements(By by): findElements 方法返回一个元 素列表

        • WebElement findElement(By by): findElement 放回一个元素 在实际使用过程中

        对单个元素的定位我们通常使用 findElement 方法,如果 要定位一组元素,那么推荐使用 findElements 方法,如果使用 findElement 方法定位到的元素有多个,那么该方法只会发返回第一个。

• findElement(By.id()): id 定位
• findElement(By.name()): name 定位
• findElement(By.linkText()): linkText 定位
• findElement(By.partialLinkText()): partialLinkText 定位
• findElement(By.className()): className 定位
• findElement(By.tagName()): tagName 定位
• findElement(By.xpath()): xpath 定位
• findElement(By.cssSelector()): cssSelector 定位
• switchTo().frame: 切换 iframe 表单

Selenium 元素操作

        我们知道通过 findElement 和 findElements 方法可以获取单个 WebElement 元素或者 List 元素列表,因 此我们可以进行元素属性的获取或者直接对该元素进行操作。

• getText(): 获取元素的文本信息,也就是在开始和结束标签之间的内
容,该内容可以用于断言我们定位到的元素是不是我们想要的元素
• getTagName(): 获取元素的标签名,该方法也可以用于判断是否定位到
了正确的元素
• getAttribute(): 根据元素的属性名获取元素的属性值
• isEnabled(): 判断元素是否可以操作,如 click() 点击 等,返回值为
True 或 False
• isDisplayed(): 判断元素是否在页面上展示
• isSelected(): 选项或者元素是否被选中,在单选或者多选框中常用到
• click(): 适用于任何元素,对其进行点击操作
• sendkeys(): 适用于文本区域或者可编辑的元素,可以输入指定内容
• clear(): 适用于文本区域或者可编辑的元素,可以清空文本内容
• submit(): 适用于 Form 表单元素,用于提交数据,Selenium 4 中不再
推荐使用此方法,而是推荐直接点检表单的提交按钮
• select: 选择单选或者多选框中的元素

Selenium 特殊元素定位与操作

• switchTo().alert().getText(): 获取弹出框文本信息
• switchTo().alert().accept(): 点击弹出框确认按钮
• switchTo().alert().dismiss(): 点击弹出框取消按钮
• getCookies():获取全部 Cookie 信息
• addCookie():添加 Cookie
• deleteAllCookies():删除所有的 Cookie
• deleteCookieNamed(): 删除指定的 Cookie
• getCookieNamed():获取指定的 Cookie
• 文件上传处理

Selenium 的等待

        Selenium 的等待指的是在对元素进行定位或则操作之前等待指定的一段时间, 什么时候开始等待以及等待时长都取决于脚本以及使用的等待的类型。 Selenium 等待的使用有以下几个场景,比如:

        • 等待元素加载完成或者可见后进行定位操作

        • 等待整个页面加载完成进行操作或者获取关键信息进行断言

• 隐式等待(Implicit Wait)
• 显示等待(Explicit Wait)
• 强制等待 Thread Sleep

Selenium 的自动截图

• getScreenshotAs: 获取元素或者窗口的截图

Selenium 模拟键盘及鼠标操作

• clickAndHold(): 点击鼠标左键
• contextClick(): 点击鼠标右键
• doubleClick(): 鼠标双击
• moveToElement(): 鼠标悬停
• dragAndDrop(): 鼠标拖拽
• perform(): 执行所有 Actions 中存储的行为
• sendKeys(): 输入键盘中的按键
• keysDown(): 按下按键

附:以上内容均为个人在蓝桥杯官网学习软件测试的总结笔记,若有侵权,将在第一时间删除,若有错误,将在第一时间修改。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RK3588 - RKNN(Rockchip 神经处理单元)的逆向工程

本文翻译自https://jas-hacks.blogspot.com/2024/02/rk3588-reverse-engineering-rknn.html RK3588 NPU 的内部操作和功能主要隐藏在名为RKNPU2的闭源 SDK 中。由于对大型语言模型 (LLM) 的兴趣以及对transform模型最佳矩阵乘法的追求,想了解 RKNPU SDK 新引入的矩阵…

自动开箱机:提升包装物流效率的关键设备

随着电子商务的飞速发展,物流行业面临着重要的挑战和机遇。如何在保证服务质量的同时,提高物流效率,降低成本,成为摆在物流企业面前的重要课题。在这个背景下,自动开箱机以其高效、精准、省力的特点,正逐渐…

OpenMM——教程学习(1)

如何从零开始做一个蛋白小分子动力学模拟 AmberTools将被用来生成输入文件,OpenMM 将被用来运行模拟,模拟平台为在线百度AI Stuio, 并使用GPU加速。 First thing’s first, 到PDB 蛋白数据库下载一需要模拟的靶点晶体,备用。 1. H web server…

一文讲清:什么是供应商管理?供应商管理怎么做?

供应商管理指的是对供应商的了解、选择、开发、使用和控制等综合性管理工作的总称。其目的在于建立起一个稳定可靠的供应商队伍,为企业生产提供可靠的物资供应。但是企业在进行供应商管理往往面临以下问题: 1、招投标,信息不透明 这主要表…

R语言的基本图形

一&#xff0c;条形图 安装包 install.packages("vcd") 绘制简单的条形图 barplot(c(1,2,4,5,6,3)) 水平条形图 barplot(c(1,2,4,5,6,3),horiz TRUE) 堆砌条形图 > d1<-c("Placebo","Treated") > d2<-c("None",&qu…

你不需要总是在 React 中使用 useState

在我审查的一个拉取请求中&#xff0c;我注意到在许多拉取请求中看到的一种模式。React 组件具有多个 UI 状态&#xff0c;例如 loading、error 和 success。 作者使用了多个 useState 钩子来管理这些状态&#xff0c;这导致代码难以阅读且容易出错&#xff0c;例如&#xff1a…

hadoop命令

hadoop命令 目录 hadoop命令 1.查看文件下面有哪些文件和目录 2.获取文件信息 查看文件内容 3.创建一个文件夹 4.剪切 1&#xff09;从本地hadoop剪切到hdfs并上传到hdfs 2&#xff09;剪切 从hdfs剪切到本地hadoop目录上 5.删除 1&#xff09;递归删除 2&#xff0…

springboot权限验证学习-下

上篇讲了rbac对于菜单的权限&#xff0c;下面准备完成按钮权限以及行数据和列数据权限 权限控制(按钮权限) 权限控制 操作权限就是将操作视为资源&#xff0c;比如删除操作&#xff0c;有些人可以有些人不行。于后端来说&#xff0c;操作就是一个接口。于前端来说&#xff0…

秋招后端开发面试题 - JVM底层原理

目录 JVM底层原理前言面试题Java 对象的创建过程&#xff1f;什么是指针碰撞&#xff1f;什么是空闲列表&#xff1f;/ 内存分配的两种方式&#xff1f;JVM 里 new 对象时&#xff0c;堆会发生抢占吗&#xff1f;JVM 是怎么设计来保证线程安全的&#xff1f;/ 内存分配并发问题…

k8s pod使用sriov

之前的文章中讲了k8s multus的使用&#xff0c;本章节来讲述下如何使用multus来实现sriov的使用。 一、sriov 简介 SR-IOV在2010年左右由Intel提出&#xff0c;但是随着容器技术的推广&#xff0c;intel官方也给出了SR-IOV技术在容器中使用的开源组件&#xff0c;例如&#…

3MF体积设计扩展

3MF 联盟最近宣布了他们最新的体积设计扩展&#xff08;volumetric design extension&#xff09;&#xff0c;用于通过基于体积的描述来编码几何形状和空间多样性属性。 该组织致力于推进 3D 打印的通用规范&#xff0c;目前正在新扩展达到 1.0 之前征求公众反馈。 NSDT工具推…

OpenCV 实现重新映射

返回:OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 上一篇&#xff1a;OpenCV 实现霍夫圆变换 下一篇 :OpenCV实现仿射变换 目标 在本教程中&#xff0c;您将学习如何&#xff1a; 一个。使用 OpenCV 函数 cv&#xff1a;&#xff1a;remap 实现简单的重新…

20240428如何利用IDM下载磁链视频

缘起&#xff1a; https://weibo.com/tv/show/1034:4864336909500449 中国获奖独立纪录片《阿辉》揭秘红灯区“教父”的生存法则 5,751次观看 1年前 发布于 陕西 身为里中横 67.7万粉丝 互联网科技博主 微博原创视频博主 头条文章作者 https://weibo.com/tv/show/1034:4864…

数据通信-A

数据通信 一、数据通信网络基础二、VRP系统三、eNSP配置命令 不是从零开始&#xff0c;有一些基础&#xff0c;主要记录配置命令。一、数据通信网络基础 图标&#xff1a;主要是认识第一行。 常见术语&#xff1a;数据通信网络最基本的功能是实现数据互通。 数据载荷&#…

解决IDEA下springboot项目打包没有主清单属性

1.问题出现在SpringBoot学习中 , 运行maven打包后无法运行 报错为spring_boot01_Demo-0.0.1-SNAPSHOT.jar中没有主清单属性 SpringBoot版本为 2.6.13 Java 版本用的8 解决方法 1.执行clean 删除之前的打包 2.进行打包规范设置 2.1 3.进行问题解决 (借鉴了阿里开发社区) 使用…

[嵌入式系统-53]:嵌入式系统集成开发环境大全

目录 一、嵌入式系统集成开发环境分类 二、由MCU芯片厂家提供的集成开发工具 三、由嵌入式操作提供的集成开发工具 四、由第三方工具厂家提供的集成开发工具 一、嵌入式系统集成开发环境分类 嵌入式系统集成开发工具和集成开发环境可以按照不同的分类方式进行划分&#xff…

【LAMMPS学习】八、基础知识(5.2)粒度模型

8. 基础知识 此部分描述了如何使用 LAMMPS 为用户和开发人员执行各种任务。术语表页面还列出了 MD 术语&#xff0c;以及相应 LAMMPS 手册页的链接。 LAMMPS 源代码分发的 examples 目录中包含的示例输入脚本以及示例脚本页面上突出显示的示例输入脚本还展示了如何设置和运行各…

将针孔模型相机 应用到3DGS

Motivation 3DGS 的 投影采用的是 CG系的投影矩阵 P P P, 默认相机的 principal point (相机光心) 位于图像的中点处。但是 实际应用的 绝大多数的 相机 并不满足这样一个设定&#xff0c; 因此我们 需要根据 f , c x , c y {f,c_x, c_y} f,cx​,cy​ 这几个参数重新构建3D …

centos 7 yum install -y nagios

centos 7 systemctl disable firewalld --now vi /etc/selinux/config SELINUXdisabled yum install -y epel-release httpd nagios yum install -y httpd nagios systemctl enable httpd --now systemctl enable nagios --now 浏览器 IP/nagios 用户名&#xff1a;…

vue学习的预备知识为学好vue打好基础

目录 Vue是什么 &#xff1f;如何使用Vue &#xff1f;Vue ApiVue入口apiVue实例apiVue函数api 无构建过程的渐进式增强静态HTMLVue模块化构建工具npmyarnWebpackvue-cliVite Vue是什么 &#xff1f; 文章基于Vue3叙述。 Vue (发音为 /vjuː/&#xff0c;类似 view) 是一款用于…