⾃动化测试常⽤函数

发布时间:2026/8/1 8:13:42

⾃动化测试常⽤函数
安装⾃动化流程请看上集https://blog.csdn.net/2302_77623737/article/details/163372237?spm1001.2014.3001.55011.元素的定位web⾃动化测试的操作核⼼是能够找到⻚⾯对应的元素然后才能对元素进⾏具体的操作。常⻅的元素定位⽅式⾮常多如idclassnametagnamexpathcssSelector常⽤的主要由cssSelector和xpath1.1 cssSelector选择器的功能选中⻚⾯中指定的标签元素选择器的种类分为基础选择器和复合选择器常⻅的元素定位⽅式可以通过id选择器和⼦类选择器来进⾏定位。定位百度首页的“百度热搜”元素可以使用通过id选择器和子类选择器进行定位:# s-hotsearch-wrapper div a.hot-title div搜索输入框元素”:# chat-textarea“百度一下按钮”:# chat-submit-button1.2 xpathXML路径语⾔不仅可以在XML⽂件中查找信息还可以在HTML中选取节点。xpath使⽤路径表达式来选择xml⽂档中的节点xpath语法中1.2.1 获取HTML⻚⾯所有的节点//*搜索输入框元素”: //* [id“chat-textarea”]1.2.2 获取HTML⻚⾯指定的节点//[指定节点]//ul 获取HTML⻚⾯所有的ul节点//input获取HTML⻚⾯所有的input节点1.2.3 获取⼀个节点中的直接⼦节点/ //span/input1.2.4 获取⼀个节点的⽗节点.. //input/.. 获取input节点的⽗节点1.2.5 实现节点属性的匹配[...]//* [id“chat-textarea”]匹配HTML⻚⾯中id属性为chat-textarea的节点1.2.6 使⽤指定索引的⽅式获取对应的节点内容注意xpath的索引是从1开始的。百度⾸⻚通过//* [id“hotsearch-content-wrapper”]/li[3]/a/span[2] 定位到第三个百度热搜标签!更便捷的生成selector/xpath的方式:右键选择复制Copy selector/xpath注意:元素的定位方法必须唯一2.操作测试对象获取到了⻚⾯的元素之后接下来就是要对元素进⾏操作了。常⻅的操作有点击、提交、输⼊、清除、获取⽂本。2.1 点击/提交对象click()//找到百度⼀下按钮并点击driver.findElement(By.xpath(“//* [id“chat-submit-button”]”)).click();2.2 模拟按键输⼊sendKeys()driver.findElement (By.xpath(//* [id\chat-textarea\])).sendKeys (输入文字);2.3清除文本内容输入文本后又想换一个新的关键词这里就需要用到clear()driver.findElement (By.xpath(“//* [id“chat-submit-button”]”)).sendKeys(“我爱游戏”);driver.findElement(By.xpath(“//* [id“chat-submit-button”]”)).clear();driver.findElement (By.xpath(“//* [id“chat-submit-button”]”)).sendKeys (“我爱学习”);2.4获取文本信息如果判断获取到的元素对应的文本是否符合预期呢?获取元素对应的文本并打印一下~~获取文本信息:getText(String bdtext driver.findElement(By.xpath(“//* [id“title-content”]/span[1]”)).getText();System.out.println(“打印的内容是:”bdtext);2.5 获取当前⻚⾯标题getTitle()2.6获取当前⻚⾯URLgetCurrentUrl()3.窗⼝打开⼀个新的⻚⾯之后获取到的title和URL仍然还是前⼀个⻚⾯的当我们⼿⼯测试的时候我们可以通过眼睛来判断当前的窗⼝是什么但对于程序来说它是不知道当前最新的窗⼝应该是哪⼀个。对于程序来说它怎么来识别每⼀个窗⼝呢每个浏览器窗⼝都有⼀个唯⼀的属性句柄handle来表⽰我们就可以通过句柄来切换.3.1 切换窗⼝1获取当前⻚⾯句柄driver.getWindowHandle();2获取所有⻚⾯句柄driver.getWindowHandles()3切换当前句柄为最新⻚⾯String curWindow driver.getWindowHandle(); SetString allWindow driver.getWindowHandles(); for( String w:allWindow){ if(w!curWindow){ driver.switchTo().window(w); } }注意:执行了driver.close()之前需要切换到未被关闭的窗口3.2窗口设置大小//窗口最大化 driver.manage().window().maximize(); //窗口最小化 driver.manage().window().minimize(); /全屏窗口 driver.manage().window().fullscreen(); //手动设置窗口大小 driver.manage().window().setSize (new Dimension(1024, 768));3.3 窗⼝切换//获取所有句柄 //获取当前停留⻚⾯句柄 String curWindow driver.getWindowHandle(); SetString allWindow driver.getWindowHandles(); for( String w : allWindow){ if(w!curWindow){ driver.switchTo().window(w); } }3.4 屏幕截图我们的⾃动化脚本⼀般部署在机器上⾃动的去运⾏如果出现了报错我们是不知道的可以通过抓拍来记录当时的错误场景屏幕截图⽅法需要额外导⼊包dependency groupIdcommons-io/groupId artifactIdcommons-io/artifactId version2.6/version /dependencyFile file ((TakesScreenshot)webDriver).getScreenshotAs(outputType. FILE); FileUtils.copyFile(file,new File(filename));代码演示//简单版本 File srcfile driver.getScreenshotAs(OutputType.FILE); FileUtils.copyFile(srcfile,new File(my.png)); //⾼阶版本 ListString times getTime(); //⽣成的⽂件夹路径./src/test/autotest-2026-08-01/goodsbroser-20260801-214130.png String filename ./src/test/autotest-times.get(0)/str- times.get(1).png; File srcfile driver.getScreenshotAs(OutputType.FILE); //把屏幕截图放到指定的路径下 FileUtils.copyFile(srcfile,new File(filename));3.5关闭窗⼝driver.close();注意窗⼝关闭后driver要重新定义4、等待通常代码执⾏的速度⽐⻚⾯渲染的速度要快如果避免因为渲染过慢出现的⾃动化误报的问题呢可以使⽤selenium中提供的三种等待⽅法4.1 强制等待Thread.sleep优点使⽤简单调试的时候⽐较有效缺点影响运⾏效率浪费⼤量的时间4.2隐式等待隐式等待是一种智能等待他可以规定在查找元素时在指定时间内不断查找元素。如果找到则代码继续执行直到超时没找到元素才会报错。implicitlyWait()yyyy-MM-dd HH:mm:ss后面的时分秒是24小时制yyyy-MM-dd hh:mm:ss后面的时分秒是12小时制//隐式等待1000毫秒 driver.manage().timeouts().implicitlyWait(Duration.ofMillis(1000)); //隐式等待5秒 driver.manage().timeouts ().implicitlyWait(Duration.ofSeconds(5));隐式等待作⽤域是整个脚本的所有元素。即只要driver对象没有被释放掉driver.quit()隐式等待就⼀直⽣效。优点智能等待作⽤于全局4.3 显⽰等待显⽰等待也是⼀种智能等待在指定超时时间范围内只要满⾜操作的条件就会继续执⾏后续代码new WebDriverWait(driver, Duration.ofSeconds(3)).until($express)$press涉及到selenium.support.ui.ExpectedConditions包下的ExpectedConditions类返回值booleanWebDriverWait foo new WebDriverWait(driver, Duration.ofSeconds(3)) foo.until(ExpectedConditions.elementToBeClickable(By.cssSelector(#id)));5.浏览器导航常⻅操作1打开⽹站// 更⻓的⽅法driver.navigate().to(“https://selenium.dev”);// 简洁的⽅法driver.get(“https://selenium.dev”);2)浏览器的前进、后退、刷新driver.navigate().back(); driver.navigate().forward(); driver.navigate().refresh();6.弹窗6.1警告弹窗确认弹窗Alert alert driver.switchTo.alert(); //确认 alert.accept() //取消 alert.dismiss()6.2提示弹窗Alert alert driver.switchTo.alert(); alert.sendKeys(hello); alert.accept(); alert.dismiss();7.文件上传点击文件上传的场景下会弹窗系统窗口进行文件的选择。selenium无法识别非web的控件上传文件窗口为系统自带无法识别窗口元素但是可以使用sendkeys来上传指定路径的文件达到的效果是一样的input[typefile])); WebElement ele driver.findElement(By.cssSelector(body div div ele.sendKeys(D: \\selenium2html\\selenium2html\\upload.html);8.浏览器参数设置1)设置⽆头模式![[Pasted image 20260731171501.png]]默认情况是有头的

相关新闻

独立站博客SEO优化从哪入手

独立站博客SEO优化从哪入手

2026/8/1 8:13:42

那些搞独立站的人, 十有八九都在同一个问题上卡壳: 网站搭建完成了, 产品也已上架了, 然而就是没有流量。广告投放成本逐日攀升, 烧钱心疼不已, 直至此时才惊觉, 源自博客的内容竟然是最为省钱且最为持久的流量入口。但对于博客SEO究竟该如何操作, 众多人实际上是茫然无知的。 …

AI素材库管理系统:让企业内容资产高效流转

AI素材库管理系统:让企业内容资产高效流转

2026/8/1 8:13:42

在内容生产常态化的当下,图片、视频、文案、音频等素材已成为企业核心数字资产。传统文件夹、普通网盘的管理模式,普遍存在素材散乱、查找低效、重复囤积、复用率低等问题,大量优质素材沉淀闲置,严重拖累设计、运营、营销等岗位的…

WAIC余热未消,WRC 2026即将登场:整机厂、供应链、车企谁能突出重围?

WAIC余热未消,WRC 2026即将登场:整机厂、供应链、车企谁能突出重围?

2026/8/1 8:13:42

量产元年,整机厂集体秀肌肉刚在上海落幕的WAIC 2026,机器人品类吸引了众多目光。若仍觉意犹未尽,接下来8月19日到23日在北京举办的2026世界机器人大会(WRC)不容错过,其主题为“人机共生,产需共融…

G-Helper完全指南:华硕笔记本轻量级控制工具的5个高效使用技巧

G-Helper完全指南:华硕笔记本轻量级控制工具的5个高效使用技巧

2026/8/1 9:13:45

G-Helper完全指南:华硕笔记本轻量级控制工具的5个高效使用技巧 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zen…

Claude注册安装与免费使用opus4.8模型完整指南

Claude注册安装与免费使用opus4.8模型完整指南

2026/8/1 9:13:45

最近很多开发者都在问:为什么Claude突然变得这么难注册?为什么新用户总是看到"Unfortunately, Claude is not available to new users right now"的提示?更重要的是,在GPT-4收费越来越贵的背景下,有没有办法…

XUnity.AutoTranslator终极指南:3分钟实现Unity游戏实时汉化

XUnity.AutoTranslator终极指南:3分钟实现Unity游戏实时汉化

2026/8/1 9:13:45

XUnity.AutoTranslator终极指南:3分钟实现Unity游戏实时汉化 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 还在为日语RPG、欧美大作的语言障碍而烦恼吗?XUnity.AutoTranslator为…

OpenCode 速通:19 万星,自主操控浏览器干活

OpenCode 速通:19 万星,自主操控浏览器干活

2026/8/1 9:13:45

用过 Claude Code 和 Codex 的朋友大概知道,接第三方模型是件比较折腾的事,需要装 Router、配环境变量、调参数。 OpenCode 把这些做成了开箱即用。打开界面,可以选填包括硅基流动(SiliconFlow)在内的任意第三方供应商…

阅读笔记:Ocean-OCR:Towards General OCR Application via a Vision-Language Model

阅读笔记:Ocean-OCR:Towards General OCR Application via a Vision-Language Model

2026/8/1 9:13:45

阅读笔记:Ocean-OCR:Towards General OCR Application via a Vision-Language Model TL;DR 这篇论文用 LLaVA 式三件套(NaViT 变长视觉编码器 MLP 投影器做 22 token 压缩 Qwen-2.5-3B) 配合大规模高质量 OCR 数据,把…

C++ switch-case编译错误解析:jump to case label的根源与解决方案

C++ switch-case编译错误解析:jump to case label的根源与解决方案

2026/8/1 9:03:44

1. 项目概述:一个让C新手头疼的编译错误 如果你刚开始写C,或者正在处理一个包含复杂 switch-case 语句的代码块,那么你很可能在某个深夜,被编译器抛出的 error: jump to case label [-fpermissive] 这个错误信息搞得一头雾水。…

[具身智能-649]:个人电脑搭建 RTSP 服务完整方案(Windows / Ubuntu 双平台,适配 RDK X5 rtsp2display 调试)

[具身智能-649]:个人电脑搭建 RTSP 服务完整方案(Windows / Ubuntu 双平台,适配 RDK X5 rtsp2display 调试)

2026/7/30 9:53:22

目标:电脑作为RTSP 服务端,循环推送 H264/H265 视频流; RDK X5 通过 rtsp2display 拉流预览,完全不需要在开发板编译 live555。 提供两套成熟方案: ✅ 方案 A:FFmpeg(最简单,优先推…

PDF合并与动态水印的工程化方案:2026国内免费工具实测对比

PDF合并与动态水印的工程化方案:2026国内免费工具实测对比

2026/8/1 0:15:49

一、背景与测试方案 在实际项目交付中,PDF文件合并与版权保护水印的叠加是一个高频但容易被低估的技术需求。典型的处理链路涉及:多源PDF的文件流合并、页面级水印渲染(含透明度混合与图层叠加)、输出文件体积控制。看似简单的操作…

PDF拆分压完图糊了?2026国内免费实测,档案员都在用的组合方案

PDF拆分压完图糊了?2026国内免费实测,档案员都在用的组合方案

2026/8/1 4:47:48

说实话,提到PDF拆分再压缩,我真是被折腾得够呛。 上个月公司年度合同归档,一份300多页的PDF总合同,需要按年份拆分成三个独立文件,再分别压缩到10MB以内方便邮件发送各部门确认。我心想这还不简单?先找个海…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/1 0:03:03

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/1 0:03:03

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/1 0:03:03

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/1 0:03:03

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/1 0:03:03

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/1 0:03:03

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…