【UI自动化测试】selenium操作补充

news/2025/1/12 0:32:02/

🏡个人主页:謬熙,欢迎各位大佬到访❤️❤️❤️~
👲个人简介:本人编程小白,正在学习互联网求职知识……
如果您觉得本文对您有帮助的话,记得点赞👍、收藏⭐️、评论💬,如果文章有什么需要改进的地方还请大佬不吝赐教🙏🙏🙏
在这里插入图片描述

WebDriver相关

在这里插入图片描述

在这里插入图片描述

WebElement相关

在这里插入图片描述

特殊元素操作

处理弹框

凡是通过 JS 实现的系统弹窗(警告框、确认框、提示框), ⽆法通过⿏标右键检查选项获取元素信息。
Alert alert = driver.switchTo().alert();

  • getText()获取文本信息
  • accept()确认
  • dismiss()取消

iframe处理

frame是html的框架,所谓框架就是可以在同一个页面显示不止一个区域,iframe多用于嵌套页面。最常见的就是登录窗口了。
driver.switchTo().frame(id、name、index、WebElement);
切换完之后再查找默认界面的元素时需要再切换回去。

window多网页窗口处理

用于切换窗口
浏览器打开新的页面时,如果不切换句柄将还是在默认页面,想查询新页面需要把句柄切换到这个窗口下
在这里插入图片描述

select下拉框

在这里插入图片描述

JS脚本处理

在这里插入图片描述
去除仅可读的属性,以免手动输入
在这里插入图片描述

鼠标操作

  • Actions actions = new Actions(driver);
  • 移动鼠标到某个元素上:actions.moveToElement(element).perform();
  • 点击某个元素:actions.click(element).perform();
  • 双击某个元素:actions.doubleClick(element).perform();
  • 右键点击某个元素:actions.contextClick(element).perform();
  • 拖拽元素:actions.dragAndDrop(sourceElement, targetElement).perform();
  • 按下鼠标左键:actions.clickAndHold(element).perform();

键盘操作

以下是Selenium中常用的键盘操作方法:

  • sendKeys(Keys.ENTER):模拟按下Enter键.
  • sendKeys(Keys.TAB):模拟按下Tab键,用于在表单元素之间切换焦点.
  • sendKeys(Keys.BACK_SPACE):模拟按下Back Space键,用于删除字符.
  • sendKeys(Keys.DELETE):模拟按下Delete键,用于删除字符.
  • sendKeys(Keys.ESCAPE):模拟按下Esc键,用于退出当前操作或关闭弹窗等.
  • sendKeys(Keys.SPACE):模拟按下空格键.
  • sendKeys(Keys.SHIFT, "text"):模拟按下Shift键并输入文本,用于输入大写字母或特殊字符.
  • sendKeys(Keys.CONTROL, "a"):模拟按下Ctrl+A组合键,用于全选文本.
  • sendKeys(Keys.CONTROL, "c"):模拟按下Ctrl+C组合键,用于复制选中的文本.
  • sendKeys(Keys.CONTROL, "v"):模拟按下Ctrl+V组合键,用于粘贴文本.
  • sendKeys(Keys.ALT, "f"):模拟按下Alt+F组合键,用于打开浏览器菜单等.
  • sendKeys(Keys.ARROW_UP):模拟按下向上箭头键,用于在列表或文本框中向上移动光标.
  • sendKeys(Keys.ARROW_DOWN):模拟按下向下箭头键,用于在列表或文本框中向下移动光标.
  • sendKeys(Keys.ARROW_LEFT):模拟按下向左箭头键,用于在文本框中向左移动光标.
  • sendKeys(Keys.ARROW_RIGHT):模拟按下向右箭头键,用于在文本框中向右移动光标.

文件上传

在这里插入图片描述

验证码

  1. 去掉验证码[常⽤]: 测试环境下采⽤
  2. 设置万能验证码[常⽤]: ⽣产环境和测试环境下采⽤, 必须注意保密不要外泄万能验证码
  3. 验证码识别技术: 通过 Python-tesseract 来识别图⽚类型验证码;识别率很难达到 100%
  4. 记录 cookie: 通过记录 cookie 进⾏跳过登录, 不能对登陆本身功能进⾏ 测试时使⽤

等待

1.傻等

暂停线程一段时间后,继续执行后续代码,可以使用Thread.sleep/TimeUnit.SECONDS.sleep的方式让当前线程暂停执行,二者都可以实现,并无差异。待休眠时间结束,线程可以继续执行。
两者区别

  • Thread.sleep()java.lang包下的类方法,接收的参数单位是毫秒,若需要让当前线程暂停执行秒,分钟,小时等,需要手动根据毫秒单位来换算;
  • TimeUnit.SECONDS.sleep()java.util.concurrent包下的类方法,底层调用的依旧是 Thread.sleep(),是对该方法的包装,多了时间单位转换和验证。

2. 隐式等待

在后续的所有元素查找操作中,如果元素没有立即出现,WebDriver 将在 一段时间内不断轮询页面,直到找到元素或者超时。在这里插入图片描述
//隐式等待调用方式,设置等待时间为5秒
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(5));

3. 显示等待

显式等待是针对特定条件进行等待,它明确指定要等待的条件和最长等待时间。只有当特定条件满足时,代码才会继续执行。在这里插入图片描述
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.WebDriverWait;
//设置5秒的最大等待时间,等待(By.tag_NAME,"title")这个元素被点击
WebDriverWait wait = new WebDriverWait(driver,Duration.ofSeconds(5));
wait.unitl(ExpectedConditions.elementToBClickable(By.tagName("title")));


http://www.ppmy.cn/news/1562363.html

相关文章

Lianwei 安全周报|2024.1.7

以下是本周「Lianwei周报」,我们总结推荐了本周的政策/标准/指南最新动态、热点资讯和安全事件,保证大家不错过本周的每一个重点! 政策/标准/指南最新动态 01 国家发改委等三部门印发《国家数据基础设施建设指引》 国家数据基础设施是从数据…

【微信小程序】回到顶部图标-页面滚动事件 | 漫画-综合实训

一、回到顶部-页面滚动事件 在微信小程序中,如果你想将“回到顶部”的功能按钮换成图标,你可以通过以下步骤实现: 1. 准备图标 首先,你需要准备一个图标图片。这个图标可以是任何你选择的格式,如 PNG 或 SVG。将图标…

Kivy App开发之UX控件Slider滑块

在app中可能会调节如音量,亮度等,可以使用Slider来实现,该控件调用方便,兼容性好,滑动平稳。在一些参数设置中,也可以用来调整数值。 支持水平和垂直方向,可以设置默认值,最小及最大值。 使用方法,需用引入Slider类,通过Slider类生成一个滑块并设置相关的样式后,再…

144.《在 macOS 上安装 Redis》

文章目录 在 macOS 上安装 Redis先决条件安装在前台启动和停止 Redis使用 launchd 启动和停止 Redis连接到 Redis后续步骤Next steps redis 官方安装教程是英文,本文只是将英文文档翻译成中文,方便大家阅读 redis官方安装教程:download redis…

Howland电流源

Howland电流源 本文旨在介绍一个经典电流源—Howland电流源的理论知识以及相关仿真。在本文后再写一篇文章介绍Howland电流的一些影响参数! 文章目录 Howland电流源一、 V/I转换电路二、基本Howland电流泵三、改进1.0- Howland电流泵四、改进2.0- Howland电流泵五、…

基于金融新闻微调大语言模型,进行股票回报预测

“Fine-Tuning Large Language Models for Stock Return Prediction Using Newsflow” 论文地址:https://arxiv.org/pdf/2407.18103 摘要 本文研究了利用金融新闻流对大型语言模型(LLMs)进行微调,以用于预测股票回报的效果&…

鸿蒙开发(29)弹性布局 (Flex)

概述 弹性布局(Flex)提供更加有效的方式对容器中的子元素进行排列、对齐和分配剩余空间。常用于页面头部导航栏的均匀分布、页面框架的搭建、多行数据的排列等。 容器默认存在主轴与交叉轴,子元素默认沿主轴排列,子元素在主轴方…

【Apache Paimon】-- Paimon Filesysterm Catalog 和 Hive Catalog 的适用场景

目录 1. Filesystem Catalog 概述 特点 适用场景 2. Hive Catalog 概述 特点 适用场景 Filesystem Catalog 与 Hive Catalog 的对比 总结 Apache Paimon 提供了多种 Catalog(元数据管理)方式,用于统一管理表的元数据,如表结构、存储位置、分区等。以下是 …