【Selenium】UI自动化|元素定位常见问题

1、报错NoSuchElementException——定位不到元素

分析的可能原因:

  1. 页面还没有加载出来,就对页面上的元素进行的操作

  2. 元素在iframe中,先要理解下frame的实质,frame中实际上是嵌入了另一个页面,而webdriver每次只能在一个页面识别,因此需要先定位到相应的frame,对那个页面里的元素进行定位。

  3. 元素在新的窗口中,未切换句柄等原因

  4. 动态id定位不到元素

    解决方案:如果发现是动态id,直接用xpath定位或其他方式定位。
  5. 二次定位,如弹出框登录

  6. 不可见元素定位——比如:type=hidden,display=none的元素无法定位

  7. 元素定位方式写错

注意⚠️

当提示NoSuchElementException,可以去驱动打开的窗口查找一下,因为有的元素用驱动打开和用浏览器直接打开是不一样的

2、 findElements与findElement

findElements找出所有元素,返回list集合;

findElement从上往下找出第一个

3、判断页面是否存在某元素

 Selenium没有直接提供判断是否存在的方法

1、可以使用findElements返回的数量判断;或者判断findElement是否抛出异常

2、元素的几个方法:

  • isDisplayed()

    • 本身这个函数用于判断某个元素是否存在页面上

    • 这里的存在不是肉眼看到的存在,而是html代码的存在。某些情况元素的visibility为hidden或者display属性为none,我们在页面看不到但是实际是存在页面的一些元素

  • isEnable

    • 用来判断界面元素是否是可用的,返回值为boolean值。

    • 用于存储input、select等元素的可编辑状态,可以编辑 返回true,否则 返回false

    • 如果该值为 true,则该元素在网页中启用,如果该元素在网页中未启用,则返回 false。

    • 常见场景例如:列表不勾选数据时,删除按钮置灰,不可点击,只有列表勾选后,才可点击删除按钮。

  • isSelected()

    • 这个是判断某个元素是否被选中

4、元素是否可见和元素是否可点击是不一样的❗️

可点击一定可见

可见不一定可点击(比如有可能被弹窗盖住了...)

不可见一定不可点击

存在不一定可见,可见一定存在

5、display:none 和 visibility:hidden 和 type ="hidden"

  • visibility: hidden----将元素隐藏,但是在网页中该占的位置还是占着。
    • 例如有三个table,将中间的一个table hidden掉,你会发现在那个被hidden的table看不见了,但是,中间会留有很大的一空白,而这个空白就是这个table没有被隐藏时所占的位置;

  • display: none----将元素的显示设为无,即在网页中不占任何的位置。
    • 例如有三个table,将中间的一个table none掉,你会发现在剩下的两个table中间不会有任何的空白。就好像中间的那个table从来不存在过一样。

    • 而none的作用更像是把元素从网页中“去除”(当然不是真的去除,只是效果是如此)

  • type ="hidden"和上面两个不一样,它叫做隐藏域,作为input 的一种输入类型,它的特点就是“看不见”;
    • 存在即合理,那我们来看看他的作用:在表单插入中隐藏域的目的在于收集和发送信息,以利于被处理表单的程序所使用

    • 注:隐藏只是在网页页面上不显示输入框,但是虽然隐藏了,还是具有form传值功能。一般用来传值,而不必让用户看到。

    • 它可以隐藏有用但又不能让浏览者看到的信息。

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

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

相关文章

Linux中给复杂命令起别名

目录 1 前言 2 操作步骤 2.1 打开.bashrc 2.2 编辑.bashrc-添加别名 2.3 使别名生效 1 前言 在linux中有些指令会比较长,为了便捷的使用它们,我们就可以采取起别名的方式,具体操作如下。 2 操作步骤 2.1 打开.bashrc 输入如下指令&a…

前端WebRTC局域网1V1视频通话

基本概念 WebRTC(Web Real-Time Communications) 网络实时通讯,它允许网络应用或者站点,在不借助中间媒介的情况下,建立点对点(Peer-to-Peer)的连接,实现视频流和音频流或者其他任…

如何在2.2.1版Aduino IDE中开发ESP32

ESP32芯片集成了WIFI和蓝牙,而且关于生态也很不错,越来越多的学习者和开发者选择此类芯片,而不像用keil开发STM32或者51一样,ESP32虽然也有官方的ESP32-IDF开发软甲,但是经过我个人的实操体验,不适合小白或…

【数据结构与算法】二叉树解题20240306

这里写目录标题 一、104. 二叉树的最大深度二、100. 相同的树三、226. 翻转二叉树四、101. 对称二叉树 一、104. 二叉树的最大深度 简单 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 1、确定递归…

基于R语言和iris数据集实现随机森林模型及测试应用

基于R语言和iris数据集实现随机森林模型及测试应用 测试应用R代码 #加载随机森林模型库 > library("randomForest") #加载iris数据集 > data(iris) > head(iris)# 设置训练数据和标签 t_data <- iris[, -5] t_labels <- iris[, 5] # 训练随机森…

机器学习-面经(part6、集成学习)

10 集成学习 定义:通过结合多个学习器(例如同种算法但是参数不同,或者不同算法),一般会获得比任意单个学习器都要好的性能,尤其是在这些学习器都是"弱学习器"的时候提升效果会很明显。 10.1 Boosting(提升法) 可以用于回归和分类 问题,它每一…

Jenkins的安装和helloworld Pipeline

文章目录 环境安装下载安装启动初始化 PipelineUISCM&#xff08;Source Control Management&#xff09;准备pipeline 参考 环境 RHEL 9.3Jenkins 2.44.0.1 安装 参考 https://www.jenkins.io/doc/book/installing/linux/#red-hat-centos 。 下载安装 [ding192 ~]$ sudo …

Elasticsearch搜索引擎

目录 初识elasticsearch 了解ES 什么是elasticsearch elasticsearch的发展 搜索引擎技术排名&#xff1a; 总结 倒排索引 正向索引和倒排索引 正向索引 倒排索引 总结 es的一些概念 文档 索引 概念对比 架构 总结 安装es&#xff0c;kibana 安装es 安装kiba…

中医舌苔笔记

舌诊时按照舌尖-舌中-舌根-舌侧的顺序进行观察。 先看舌体再看舌苔&#xff0c;30秒左右。 如果一次望舌判断不清&#xff0c;可令病人休息3~5分钟后&#xff0c;重新观察一次 舌诊脏腑部位分属图 舌体 胖嫩而边有齿痕为气虚、阳虚。 薄白而润为风寒&#xff1b; 薄白而燥…

顶顶通呼叫中心中间件-机器人话术如何实现在放音期间不接收按键信息

文章目录 前言联系我们实现方法 前言 场景&#xff1a;进入机器人话术时&#xff0c;在话术放音期间不接收用户的按键信息&#xff0c;等话术放音完成后才允许接收用户的按钮信息&#xff0c;然后根据用户的按钮信息执行相应的机器人话术流程。 联系我们 有意向了解呼叫中心中…

图解 TCP 拥塞控制

文章目录 什么是拥塞控制拥塞控制算法慢启动拥塞避免快速恢复 TCP拥塞控制状态机 什么是拥塞控制 拥塞控制是一种 确保网络中的数据包以可持续的速率传输 的机制&#xff0c;避免因为数据包太多而超过网络当前的承载能力&#xff0c;导致网络性能下降&#xff0c;甚至产生大量…

(四)关系模型之关系代数

4.1关系代数概述 基于集合&#xff0c;提供了一系列的关系代数操作&#xff1a;并、差、笛卡尔积(广义积)、 选择、投影和更名等基本操作以及交、 连接和关系除等扩展操作&#xff0c;是一种集合思维的操作语言。关系代数操作以一个或多个关系为输入&#xff0c;结果是一个新的…

单片机为什么需要时钟?2种时钟电路对比?

目录 一、晶体振荡器&#xff08;Crystal Oscillator&#xff09;的核心知识 二、单片机为什么需要时钟电路&#xff1f; 三、单片机的时钟电路方案 01、外部晶振方案 02、内部晶振方案 四、总结 单片机研发设计的项目中&#xff0c;它的最小电路系统包含 电源电路复位…

电源PCB设计:确保稳定高效的电源供应

作为电子设备的心脏&#xff0c;电源的设计与布局布线质量&#xff0c;将直接关系到整个系统的稳定性和效率&#xff0c;那么电子工程师该如何惊喜打造电源PCB&#xff0c;确保电源供应的稳定、高效安全&#xff1f; 1、电源PCB设计的核心要素①板层与铜厚选择&#xff1a;根据…

算法46:动态规划专练(力扣198: 打家劫舍 力扣740:删除并获取点数)

打家劫舍问题&#xff1a; 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在同一晚上被小偷闯入&#xff0c;系统会自动报警。 给定…

Windows Server 2003 搭建邮件服务器实现自建邮箱域名及账户并连接外网

前言 2008 之后的版本微软删除了 POP 服务导致只能安装 SMTP 服务&#xff0c;所以这里只写了关于 2003 版本的教程 点击左下角开始➡管理工具➡管理您的服务器&#xff0c;点击添加或删除角色 点击下一步 选择自定义配置&#xff0c;点击下一步 选择邮件服务器&#xff0c…

vue3中压缩图片的大小

效果 上传一张图片&#xff0c;看看文件的大小。我们会发现小了很多 思路 图片太大也是因为宽高太大&#xff0c;进行宽高的缩放就可以了 实现过程 const onUpload async ({ file }) > {console.log(file);if (file.size / 1024 / 1024 > 100) {message.error(大小不…

uniapp模仿下拉框实现文字联想功能 - uniapp输入联想(官方样式-附源码)

一、效果 废话不多说&#xff0c;上效果图&#xff1a; 在下方的&#xff1a; 在上方的&#xff1a; 二、源码 一般是个输入框&#xff0c;输入关键词&#xff0c;下拉一个搜索列表。 ElementUI有提供<el-autocomplete>&#xff0c;但uniapp官网没提供这么细&#x…

备考2024年北京高考数学:20114~2023十年选择题练习和解析

距离2024年高考还有三个月的时间&#xff0c;如何用三个月的时间再提高北京数学高考的成绩&#xff1f;吃透历年真题以及背后的知识点是行之有效的方法 之一。 今天我们来看一下2014-2023年的北京市高考数学的选择题&#xff0c;从过去十年&#xff08;2014-2023&#xff09;的…

深入浅出解析SSL:保障网络安全的加密技术

在数字信息时代&#xff0c;网络安全已成为人们关注的重点。为了在网络传输过程中保护数据的完整性和机密性&#xff0c;我们需要一种强大的安全协议——SSL&#xff08;安全套接层&#xff09;。今天德迅云安全就带大家来简单了解下SSL是什么&#xff0c;它的工作原理以及为何…