当前位置: 首页 > news >正文

Java测试——selenium常见操作(2)

这篇博客继续讲解一些selenium的常见操作

selenium的下载与准备工作请看之前的博客:Java测试——selenium的安装与使用教程

先创建驱动

ChromeDriver driver = new ChromeDriver();

等待操作

我们上一篇博客讲到,有些时候代码执行过快,页面还没渲染完毕,因此会导致查找元素失败的情况
上一篇博客中使用线程阻塞等待的方式进行等待,这里介绍一下selenium中的几种等待操作

强制等待

也就是程序强制阻塞进行等待

Thread.sleep(毫秒数);

这种方法不能用的特别多,因为我们的测试用例有很多,如果一个测试用例需要阻塞等待三秒,那么100个测试用例就需要等待300秒了

隐式等待

可以使用下面这行代码进行隐式等待

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(秒数));

当我们执行隐式等待后,后面的driver在查询元素时都会先判断元素是否存在,如果存在就正常继续执行流程,如果不存在,会在我们指定的秒数中不断的轮询查看元素是否存在

显示等待

使用下面的方法可以显示等待

new WebDriverWait(driver,Duration.ofSeconds(秒数)).until(driver->待查找元素));

例如我们可以在5秒内显示等待查找百度搜索框

new WebDriverWait(driver,Duration.ofSeconds(5)).until(driver->driver.findElement(By.cssSelector("#kw")));

浏览器操作

浏览器的请求网址操作

driver.navigate().to(网址);

浏览器前进操作:

driver.navigate().forward();

浏览器后退操作:

driver.navigate().back();

浏览器刷新操作:

driver.navigate().refresh();

弹窗操作

弹窗分类

前端中弹窗分为三种:
警告弹窗:只有关闭
在这里插入图片描述
确认弹窗:有好和取消
在这里插入图片描述
提示弹窗:
有好,取消和输入框
在这里插入图片描述

弹窗操作

先将driver作用切换到弹窗上

driver.switchTo().alert()

确认操作:

alert.accept();

取消操作:

alert.dismiss();

输入文本操作:

alert.sendKeys("xxxx");

选择框操作

在这里插入图片描述
前端代码:

<html>
<body>
<select id="ShippingMethod"
onchange="updateShipping(options[selectedIndex]);" name="ShippingMethod">
<option value="30">库里</option>
<option value="23">詹姆斯</option>
<option value="35">杜兰特</option>
<option value="11">汤普森</option>
</select>
</body>
</html>

可以跟据多种方式对选择框中的内容进行选择

先选中选择框元素

WebElement element = driver.findElement(By.cssSelector("#ShippingMethod"));

创建select对象

Select select = new Select(element);

根据文本选择

select.selectByVisibleText("库里");

根据属性选择

select.selectByValue("30");

根据序号选择

序号从上至下,从0开始

select.selectByIndex(0)

执行脚本

我们可以执行js中的指令

driver。executeScript(js命令);

例如将浏览器页面滑到最上面

driver.executeScript("document.documentElement.scrollTop=0");

用js指令进行搜索

driver.executeScript("var kw = document.querySelector('#kw'); kw.value = '蔡徐坤'");

文件上传

driver.findElement(文件元素).sendKeys(文件路径);

例如:

driver.findElement(By.cssSelector("body > div > div > input[type=file]")).sendKeys("/Users/lixiao/Downloads/selenium-html/upload.html");

无头模式

我们可以选择自动化测试中不显示浏览器操作过程

ChromeOptions options = new ChromeOptions();
options.addAruguments("-headless");
ChromeDriver driver = new ChromeDriver();

这样后面的driver就是无头模式了

相关文章:

Java测试——selenium常见操作(2)

这篇博客继续讲解一些selenium的常见操作 selenium的下载与准备工作请看之前的博客&#xff1a;Java测试——selenium的安装与使用教程 先创建驱动 ChromeDriver driver new ChromeDriver();等待操作 我们上一篇博客讲到&#xff0c;有些时候代码执行过快&#xff0c;页面…...

【三维点云】01-激光雷达原理与应用

文章目录内容概要1 激光雷达原理1.1 什么是激光雷达&#xff1f;1.2 激光雷达原理1.3 激光雷达分类三角法TOF法脉冲间隔测量法幅度调制的相位测量法相干法激光雷达用途2 激光雷达安装、标定与同步2.1 激光雷达安装方式考虑因素2.2 激光雷达点云用途2.3 数据融合多激光雷达数据融…...

自动驾驶感知——物体检测与跟踪算法|4D毫米波雷达

文章目录1. 物体检测与跟踪算法1.1 DBSCAN1.2 卡尔曼滤波2. 毫米波雷达公开数据库的未来发展方向3. 4D毫米波雷达特点及发展趋势3.1 4D毫米波雷达特点3.1.1 FMCW雷达角度分辨率3.1.2 MIMO ( Multiple Input Multiple Output)技术3.2 4D毫米波雷达发展趋势3.2.1 芯片级联3.2.2 专…...

C语言(内联函数(C99)和_Noreturn)

1.内联函数 通常&#xff0c;函数调用都有一定的开销&#xff0c;因为函数的调用过程包含建立调用&#xff0c;传递参数&#xff0c;跳转到函数代码并返回。而使用宏是代码内联&#xff0c;可以避开这样的开销。 内联函数&#xff1a;使用内联diamagnetic代替函数调用。把函数…...

图卷积神经网络(GCN)理解与tensorflow2.0 代码实现 附完整代码

图(Graph),一般用 $G=(V,E)$ 表示,这里的$V$是图中节点的集合,$E$ 为边的集合,节点的个数用$N$表示。在一个图中,有三个比较重要的矩阵: 特征矩阵$X$:维度为 $N\times D$ ,表示图中有 N 个节点,每个节点的特征个数是 D。邻居矩阵$A$:维度为 $N\times N$ ,表示图中 N…...

模电学习6. 常用的三极管放大电路

模电学习6. 常用的三极管放大电路一、判断三极管的工作状态1. 正偏与反偏的概念2. 工作状态的简单判断二、三种重要的放大电路1. 共射电路2. 共集电极放大电路3. 共基极放大电路一、判断三极管的工作状态 1. 正偏与反偏的概念 晶体管分P区和N区&#xff0c; 当P区电压大于N区…...

Lesson 6.6 多分类评估指标的 macro 和 weighted 过程 Lesson 6.7 GridSearchCV 的进阶使用方法

文章目录一、多分类评估指标的 macro 和 weighted 过程1. 多分类 F1-Score 评估指标2. 多分类 ROC-AUC 评估指标二、借助机器学习流构建全域参数搜索空间三、优化评估指标选取1. 高级评估指标的选用方法2. 同时输入多组评估指标四、优化后建模流程在正式讨论关于网格搜索的进阶…...

基于 Python 实时图像获取及处理软件图像获取;图像处理;人脸识别设计 计算机毕设 附完整代码+论文 +报告

界面结果:图像获取;图像处理;人脸识别 程序结构设计 图形用户界面设计与程序结构设计是互为表里的。或者说,程序结构设计是软件设计最本质、最核心的内容。徒有界面而内部逻辑结构混乱的软件一无是处。 Windows 操作系统是一款图形化的操作系统,相比于早期的计算机使用的命…...

前后端RSA互相加解密、加签验签、密钥对生成(Java)

目录一、序言二、关于PKCS#1和PKCS#8格式密钥1、简介2、区别二、关于JSEncrypt三、关于jsrsasign四、前端RSA加解密、加验签示例1、相关依赖2、cryptoUtils工具类封装3、测试用例五、Java后端RSA加解密、加验签1、CryptoUtils工具类封装2、测试用例六、前后端加解密、加验签交互…...

基于Java+SpringBoot+Vue前后端分离学生宿舍管理系统设计与实现

博主介绍&#xff1a;✌全网粉丝3W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建、毕业项目实战、项目定制✌ 博主作品&#xff1a;《微服务实战》专栏是本人的实战经验总结&#xff0c;《S…...

前端高频面试题—JavaScript篇(二)

&#x1f4bb;前端高频面试题—JavaScript篇&#xff08;二&#xff09; &#x1f3e0;专栏&#xff1a;前端面试题 &#x1f440;个人主页&#xff1a;繁星学编程&#x1f341; &#x1f9d1;个人简介&#xff1a;一个不断提高自我的平凡人&#x1f680; &#x1f50a;分享方向…...

【微信小游戏开发笔记】第二节:Cocos开发界面常用功能简介

Cocos开发界面常用功能简介 本章只介绍微信小游戏开发时常用的功能&#xff0c;其他功能不常用&#xff0c;写多了记不住&#xff08;其实是懒 -_-!&#xff09;&#xff1a; 层级管理器&#xff0c;用于操作各个节点。资源管理器&#xff0c;用于操作各种文件资源。场景编辑…...

3分钟,学会了一个调试CSS的小妙招

Ⅰ. 作用 用于调试CSS , 比控制台添更加方便&#xff0c;不需要寻找 &#xff1b;边添加样式&#xff0c;边可以查看效果&#xff0c;适合初学者对CSS 的理解和学习&#xff1b; Ⅱ. 快速实现&#xff08;两边&#xff09; ① 显示这个样式眶 给 head 和 style 标签添加一个…...

【项目精选】基于jsp的健身俱乐部会员系统

点击下载源码 社会可行性 随着社会的发展和计算机技术的进步&#xff0c;人类越来越依赖于信息化的管理系统&#xff0c;这种系统能更加方便的获得信息以及处理信息。人们都改变了过去的思维&#xff0c;开始走向了互联网的时代&#xff0c;在 可行性小结 本章在技术可行性上…...

java注解

1. Java注解(Annotation) 2. Java注解分类 3. JDK基本注解 4. JDK元注解 5. 注解分类 6. 自定义注解开发 7. 提取Annotation信息 8. 注解处理器 9. 动态注解处理器(spring aop方式) 1. Java注解(Annotation) Java注解是附加在代码中的一些元信息&#xff0c;用于…...

移动测试相关

一、环境搭建 准备工作&#xff1a; &#xff08;python、pycharm安装配置好&#xff09; 1、Java SDK 安装配置 Java Downloads | Oracle 下载安装后配置系统环境变量&#xff1a;JAVA_HOME&#xff08;jdk根目录路径&#xff09;和path&#xff08;jdk根目录下的bin目录路径…...

SIGIR22:User-controllable Recommendation Against Filter Bubbles

User-controllable Recommendation Against Filter Bubbles 摘要 推荐系统经常面临过滤气泡的问题&#xff1a;过度推荐基于用户特征以及历史交互的同质化项目。过滤气泡将会随着反馈循环增长&#xff0c;缩小了用户兴趣。现有的工作通常通过纳入诸如多样性和公平性等准确性之…...

Python中的进程线程

文章目录前言多进程与多线程基本概念多进程multiprocessing 类对象进程池subprocess模块进程间通信多线程threading实现线程操作线程共享所有变量线程锁参考资料前言 又花了点时间学习了一下Python中的多线程与多进程的知识点&#xff0c;梳理一下供复习参考 多进程与多线程 …...

python(8):使用conda update更新conda后,anaconda所有环境崩溃----问题没有解决,不要轻易更新conda

文章目录0. 教训1. 问题:使用conda update更新conda后&#xff0c;anaconda所有环境崩溃1.1 问题描述1.2 我搜索到的全网最相关的问题----也没有解决3 尝试流程记录3.1 重新安装pip3.2 解决anaconda编译问题----没成功0. 教训 (1) 不要轻易使用conda update更新conda----我遇到…...

c++11 标准模板(STL)(std::multimap)(四)

定义于头文件 <map> template< class Key, class T, class Compare std::less<Key>, class Allocator std::allocator<std::pair<const Key, T> > > class multimap;(1)namespace pmr { template <class Key, class T…...

乐观锁及悲观锁

目录 1.乐观锁 (1).定义 (2).大体流程 (3).实现 (4).总结 2.悲观锁 (1).定义 (2).大体流程 (3).实现 (4).缺点 (5).总结 1.乐观锁 (1).定义 乐观锁在操作数据时非常乐观&#xff0c;认为别的线程不会同时修改数据所以不会上锁&#xff0c;但是在更新的时候会判断一…...

常见的锁策略

注意: 接下来讲解的锁策略不仅仅是局限于 Java . 任何和 "锁" 相关的话题, 都可能会涉及到以下内容. 这些特性主要是给锁的实现者来参考的.普通的程序猿也需要了解一些, 对于合理的使用锁也是有很大帮助的. 1.乐观锁 vs 悲观锁 悲观锁: &#xff08;认为出现锁冲…...

springboot学习(八十) springboot中使用Log4j2记录分布式链路日志

在分布式环境中一般统一收集日志&#xff0c;但是在并发大时不好定位问题&#xff0c;大量的日志导致无法找出日志的链路关系。 可以为每一个请求分配一个traceId&#xff0c;记录日志时&#xff0c;记录此traceId&#xff0c;从网关开始&#xff0c;依次将traceId记录到请求头…...

10种ADC软件滤波方法及程序

10种ADC软件滤波方法及程序一、10种ADC软件滤波方法1、限幅滤波法&#xff08;又称程序判断滤波法&#xff09;2、中位值滤波法3、算术平均滤波法4、递推平均滤波法&#xff08;又称滑动平均滤波法&#xff09;5、中位值平均滤波法&#xff08;又称防脉冲干扰平均滤波法&#x…...

第五章:Windows server加域

加入AD域&#xff1a;教学视频&#xff1a;https://www.bilibili.com/video/BV1xM4y1D7oL/?spm_id_from333.999.0.0首先我们选择一个干净的&#xff0c;也就是新建的没动过的Windows server虚拟机。我们将DNS改成域的ip地址&#xff0c;还要保证它们之间能ping的通&#xff0c…...

Elasticsearch:获取 nested 类型数组中的所有元素

在我之前的文章 “Elasticsearch: object 及 nested 数据类型” 对 nested 数据类型做了一个比较详细的介绍。在实际使用中&#xff0c;你在构建查询时肯定会遇到一些问题。根据官方文档介绍&#xff0c;nested 类型字段在隐藏数组中索引其每个项目&#xff0c;这允许独立于索引…...

English Learning - Day53 作业打卡 2023.2.7 周二

English Learning - Day53 作业打卡 2023.2.7 周二引言1. 我必须承认&#xff0c;我之前学习没你用功。have to VS must2. 这跟我想得一样简单。3. 生活并不像它看上去那么顺风顺水&#xff0c;但也不会像我们想象得那么难。Look VS seem4. 你比去年高多了。5. 你关心你的工作胜…...

SpringMVC--注解配置SpringMVC、SpringMVC执行流程

注解配置SpringMVC 使用配置类和注解代替web.xml和SpringMVC配置文件的功能 创建初始化类&#xff0c;代替web.xml 在Servlet3.0环境中&#xff0c;容器会在类路径中查找实现javax.servlet.ServletContainerInitializer接口的类&#xff0c; 如果找到的话就用它来配置Servle…...

JavaScript中数组常用的方法

文章目录前言常用数组方法1、 join( )2、push&#xff08;&#xff09;与 pop&#xff08;&#xff09;3、shift&#xff08;&#xff09;与 unshift&#xff08;&#xff09;4、sort&#xff08;&#xff09;5、reverse&#xff08;&#xff09;6、slice&#xff08;&#xff…...

ModuleNotFoundError: No module named ‘pip‘

项目场景&#xff1a;pip 错误 Traceback (most recent call last): File "E:\KaiFa\Python\Python38\lib\runpy.py", line 194, in _run_module_as_main return _run_code(code, main_globals, None, File "E:\KaiFa\Python\Python38\lib\runpy.py&qu…...

湖南英文网站建设/seo推广排名重要吗

undefined&#xff1a;声明了变量&#xff0c;但是没有赋值undeclared&#xff1a;没有声明变量就直接使用 如上图&#xff0c;num 就是undefined&#xff0c;arr 则是 undeclared。...

东凤镇做网站公司/南京高端品牌网站建设

这篇文章主要介绍了PHP开发之归档格式phar文件概念与用法,结合实例形式较为详细的分析了归档格式phar文件创建,使用,解包还原提取等概念及操作实现方法,需要的朋友可以参考下本文实例讲述了PHP开发之归档格式phar文件概念与用法。分享给大家供大家参考&#xff0c;具体如下&…...

网站建设合作伙伴/seo的关键词无需

目录OS/OS.PATH模块系统操作目录操作Path模块判断例题OS/OS.PATH模块 在Python里面&#xff0c;我们要对文件系统进行访问&#xff0c;一般是通过os模块来实现的Python是跨平台语言。有了os模块&#xff0c;不需要关心什么操作系统下使用什么模块 系统操作 os.name显示当前使…...

手机做网站公司有哪些/百度在线识图

计算机二级考试《Java》代码的基本知识Java语言程序设计是计算机二级考试中的科目之一&#xff0c;是一种可以撰写跨平台应用程序的面向对象的程序设计语言。下面百分网小编为大家搜索整理了关于《Java》代码的基本知识&#xff0c;欢迎参考学习&#xff0c;希望对大家有所帮助…...

wordpress建站企业站/关键词有哪几种

1.查询一张表&#xff1a;select * from 表名&#xff1b;2.查询指定字段&#xff1a;select 字段1&#xff0c;字段2&#xff0c;字段3....from 表名&#xff1b;3.where条件查询&#xff1a;select 字段1&#xff0c;字段2&#xff0c;字段3 frome 表名 where 条件表达式&…...

wordpress加密页面/自己怎么做网页

在vb.net中利用OleDb的OleDbCommand类操作数据库,有以下这些方法&#xff1a; ExecuteNoQuery() 返回值类型integer&#xff0c;常用来执行增删改操作&#xff0c;返回操作影响的行数 ExecuteReader() 返回一个只读的数据集&#xff0c;常用来作查询操作 ExecuteScalar() 返回值…...