Selenium常见元素操作,学完就能上手

web端自动化测试在回归测试、兼容测试扮演着举足轻重的角色,作为web自动化测试工程师,日常工作主要的部分就是编写自动化测试用例代码,借助的开源框架来说,目前市场占有率较高的仍然是selenium。

如何使用selenium完成web页面元素的定位和操作,是web自动化测试工程师用例代码中的主要工作,元素定位主要有8种,定位到元素后,需要做的就是元素行为的模拟,比如点击按钮元素、在文本框输入内容等等,**如何使用selenium实现元素操作呢?**以下列举常见的元素操作。

右键目标元素

 1WebElement element = driver.findElement(定位方式方法);
 2//定义WebElement selenium元素对象
 3Actions actions = new Actions(driver);
 4//定义Actions selenium元素操作对象
 5actions.contextClick(element).perform();
 6// 通过actions对象触发鼠标右键点击
 7Robot robot = new Robot();
 8//定义Robot selenium键盘操作对象
 9robot.keyPress(KeyEvent.VK_DOWN);
10// 通过robot按下方向键中的下键    
11robot.keyRelease(KeyEvent.VK_DOWN);
12// 通过robo松开方向下键
13Thread.sleep(1000L);
14robot.keyPress(KeyEvent.VK_ENTER);
15// 按下回车键 
16robot.keyRelease(KeyEvent.VK_ENTER);
17// 松开回车键

输入框目标元素的清空输入

1WebElement element = driver.findElement(定位方式方法);
2//定义WebElement selenium元素对象
3element.clear();
4 //将输入框清空
5element.sendKeys(“测试”);
6//在输入框中输入内容  测试
7element.getText();
8//获取输入框的文本内容:

多选框目标元素的全部勾选

1List<WebElement> elements = driver.findElements(定位方式方法);
2//定义WebElement selenium元素对象集合
3for (int i = 0; i < elements.size(); i++) {
4       elements.get(i).click(); //全部勾选多选框
5}

多选框目标元素的随机勾选2个

 1List<WebElement> elements = driver.findElements(定位方式方法);
 2//定义WebElement selenium元素对象集合
 3Set<Integer> set = new HashSet<>();
 4//定义HashSet集合对象
 5do{
 6      Random random = new Random();
 7     //定义Random对象
 8      int temp = random.nextInt(elements.size());
 9      //获取随机数
10       set.add(temp);
11     //将获取的随机数存到HashSet集合对象
12 }while (set.size()<2);
13
14 for (Integer integer : set) {
15      elements.get(integer).click();//随机勾选2个多选选框
16}

弹窗对话框目标元素的操作

 1WebElement element = driver.findElement(定位方式方法);
 2//定义WebElement selenium元素对象
 3element.click();
 4 //元素点击触发弹窗对话框出现
 5Alert alert = driver.switchTo().alert();
 6//定义Alert selenium弹窗对象
 7alert.accept();  
 8//弹窗对话框点确定按钮
 9alert.dismiss();  
10//弹窗对话框点取消按钮
11alert.sendKeys(“测试”);
12//弹窗对话框中输入框输入  测试

浏览器基本操作以及鼠标操作

 1System.setProperty("webdriver.chrome.driver", "webdrivers/chromedriver.exe");
 2WebDriver driver = new ChromeDriver();
 3//定义ChromeDriver对象
 4driver.manage().window().maximize();
 5//浏览器窗口最大化
 6driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
 7//设置隐式智能等待时间5秒
 8driver.get("http://www.mtxhsop.com:3000/");
 9//访问商城网站首页
10driver.navigate().refresh();
11//刷新浏览器当前页面
12
13// 实例化actions类。调用doubleClick方法,双击目标元素
14WebElement element = driver.findElement(定位方式方法);
15//实例化WebElement对象,element该对象为双击目标对象
16Actions actions = new Actions(driver);
17// 实例化Actions类对象:actions,并将driver传给actions
18actions.doubleClick(day).perform();
19// 双击目标元素element
20
21
22// 调用moveToElement方法,把鼠标移动到目标元素上
23WebElement Qui = driver.findElement(定位方式方法);
24actions.moveToElement(Qui).perform();

调用JS脚本

1WebDriver driver=new ChromeDriver();
2//定义ChromeDriver对象
3JavascriptExecutor js = (JavascriptExecutor) driver;
4//将ChromeDriver对象强转成JavascriptExecutor对象
5js.executeScript("JS脚本");
6//使用JavascriptExecutor对象调用JS脚本

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

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

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

相关文章

算法---双指针练习-5(有效三角形的个数)

有效三角形的个数 1. 题目解析2. 讲解算法原理3. 编写代码 1. 题目解析 题目地址&#xff1a;有效三角形的个数 2. 讲解算法原理 算法的基本思想是首先对数组进行排序&#xff0c;然后使用三个指针left、right和cur&#xff0c;分别表示三个元素的索引。其中&#xff0c;left指…

PCIE UVM SVT

PCIE中存在UI概念,unit interval 定义为每个bit 传输需要的时间。 Introduction VC UVM VIP for PCIE 是一个兼容UVM验证方法学的高级验证组合以及数据类型的套件。 VC UVM VIP是基于uvm_agen 的架构图如下所示: svt_pcie_device_agent:它包含Driver,Target,Requeseter,I…

CDR(CorelDRAW)2024最新汉化注册补丁包下载

CorelDRAW 2024是一款功能强大的平面设计软件&#xff0c;广泛应用于图形设计、编辑照片以及创建网站等领域。凭借对高级操作系统的支持、多监视器查看和4K显示屏的兼容性&#xff0c;它让初始用户、图形专家、小型企业主和设计爱好者都能自信快速地交付专业级结果。 CorelDRA…

解决方案|珈和科技推出农业特色产业数字化服务平台

今年中央一号文件提出&#xff0c;鼓励各地因地制宜大力发展特色产业&#xff0c;支持打造乡土特色品牌。 然而&#xff0c;农业特色产业的生产、加工和销售仍然面临诸多挑战。产品优质不能优价&#xff0c;优质不能优用的现象屡见不鲜&#xff0c;产业化程度低、生产附加值不…

套接字编程 --- 一

目录 1. 预备知识 1.1. 端口号 1.2. 认识TCP协议 1.3. 认识UDP协议 1.4. 网络字节序 2. socket 2.1. socket 常见系统调用 2.1.1. socket 系统调用 2.1.2. bind 系统调用 2.1.3. recvfrom 系统调用 2.1.4. sendto系统调用 2.3. 其他相关接口 2.3.1. bzero 2.3.2…

智慧公厕的三大特点:信息化、数字化、智慧化

智慧公厕是以物联网、互联网、大数据、云计算等先进技术为支撑&#xff0c;对公共厕所的使用、运营、管理、养护进行全方位高效应用的创新型公厕。它具有三大显著特点&#xff1a;&#xff08;ZonTree中期&#xff09;信息化、数字化和智慧化。本文以智慧公厕源头实力厂家广州中…

【鸿蒙 HarmonyOS 4.0】常用组件:List/Grid/Tabs

一、背景 列表页面&#xff1a;List组件和Grid组件&#xff1b; 页签切换&#xff1a;Tabs组件&#xff1b; 二、列表页面 在我们常用的手机应用中&#xff0c;经常会见到一些数据列表&#xff0c;如设置页面、通讯录、商品列表等。下图中两个页面都包含列表&#xff0c;“…

【PCIe 链路训练】之均衡(equalization)

1、概述 这篇文章简单介绍一下PCIE phy的均衡原理和过程,USB phy,ethernet phy这些高速的串行serdes也有相同或者相似的结构。可以不用太关注其中的细节,等到debug的时候可以查询协议,但是需要了解这个故事讲的大概内容。整个equalization过程是controller和phy一起配合完成…

什么是智慧公厕?智慧公厕设备有哪些

在现代社会&#xff0c;公共厕所作为城市基础设施的重要一环&#xff0c;承载着城市卫生、居民生活品质的重要责任。然而&#xff0c;传统公厕存在的问题仍然不可忽视&#xff1a;脏乱差、资源浪费、安全隐患等等。 为了解决这些问题&#xff0c;针对公共厕所日常使用、运营管…

go语言-k8s宿主信息采集运维脚本

背景 由于工作需要&#xff0c;需要采集k8s集群中的宿主相关信息&#xff0c;包括cpu,memory,lvm,标签等信息。通常作为SRE会主选shell或python脚本来实现。但最近我们团队主流开发语言已经切换到golang.所以本次尝试用go语言来写写运维脚本。 实现流程图 代码实现 package m…

[笔记]Crash Course Computer Science

二进制 byte 在电脑中的单位换算&#xff1a; kilobyte 千字节 megabyte 兆字节 gigabyte 千兆字节 1kb210bit 1024byte 1000b 1Mb 220bit 1024kb 1Gb 230bit 1TB1000GB 1GB十亿字节1000MB10^6KB Gb 和 GB 一般而言GB用于文件&#xff0c;Gb用于通信。B代表Byte&…

类与对象(三)--static成员、友元

文章目录 1.static成员1.1概念&#x1f3a7;面试题✒️1.2static的特性&#x1f3a7;1.3思考&#x1f3a7; 2.友元2.1什么是友元&#xff1f;&#x1f3a7;2.2两种友元关系&#xff1a;&#x1f3a7; 1.static成员 1.1概念&#x1f3a7; &#x1f50e; static关键字用于声明类…

SpringCloudAlibaba微服务之Nacos架构及基础概念梳理

SpringCloudAlibaba微服务之Nacos架构及基础概念梳理 文章目录 SpringCloudAlibaba微服务之Nacos架构及基础概念梳理1. 官网介绍1. 简介2. Naocs是什么3. Nacos 地图4. Nacos 生态图 2. Nacos 架构1. 基本架构及概念1. 服务 (Service)2. 服务注册中心 (Service Registry)3. 服务…

第四届信息通信与软件工程国际会议(ICICSE 2024)即将召开!

2024年第四届信息通信与软件工程国际会议&#xff08;ICICSE 2024&#xff09;将于2024年5月10-12日在中国北京举办。本次会议由北京工业大学、IEEE以及Comsoc 联合主办。随着当今社会信息化的高速发展&#xff0c;电子信息技术的应用更是随处可见。其中&#xff0c;信息通信与…

K倍区间(蓝桥杯)

文章目录 K倍区间题目描述前缀和数学优化代码部分解释 K倍区间 题目描述 给定一个长度为 N的数列&#xff0c;A1,A2,…AN&#xff0c;如果其中一段连续的子序列 Ai,Ai1,…Aj 之和是 K的倍数&#xff0c;我们就称这个区间 [i,j]是 K倍区间。 你能求出数列中总共有多少个 K倍区…

Zabbix(四)

Zabbix Proxy zabbix作为一个分布式监控系统(分布式监控解决方案)&#xff0c;支持通过代理(proxy)收集zabbix agent的监控数据&#xff0c;然后由zabbix proxy再把数据发送给zabbix server&#xff0c;也就是zabbix proxy 可以代替zabbix server收集监控数据&#xff0c;然后…

Mybatis-Spring | Mybatis与Spring的“整合“

目录 : 一、配置环境1. 整合环境需导入的JAR :Spring框架所需JARMybatis框架所需JARMyBatis与Spring整合的中间JAR数据库驱动JAR包数据源所需JAR包 &#xff08;下面的例子中 : 用的不是这个数据源&#xff09; 2. 编写“配置文件” 和 “.properties文件” ( 只是概述&#xf…

电磁铁通电后测不到磁场是什么原因

电磁铁 电磁铁没有磁力的一般原因有多种&#xff0c;以下是一些常见原因&#xff1a; 1. 电源问题&#xff1a;电磁铁没有连接好电源或电源电压不足&#xff0c;无法产生足够强的磁场。电磁铁所需要的电流和电压应符合制造商的规定。另外的话&#xff0c;电源接头也需要注意接…

SAP 消息编号 M8147

月末执行物料分类账的时候&#xff0c;出现以下报错 解决方法&#xff1a;OBYC-PRM

Linux运维:实现光盘开机自动挂载、配置本地yum源教程

Linux运维&#xff1a;实现光盘开机自动挂载、配置本地yum源教程 一、光盘开机自动挂载1、检查光驱设备2、创建挂载点3、编辑/etc/fstab文件4、测试挂载 二、配置本地yum源(挂载光盘或ISO文件)1、挂载ISO文件2、创建YUM仓库配置文件3、清理YUM缓存并测试 &#x1f496;The Begi…