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

selenium判断元素可点击、可见、可选

1、判断元素是否可以点击

判断元素是否可以点击,WebElement对象调用is_enabled()

is_enabled()方法返回一个布尔值,若可点击返回:True。若不可点击则返回:False

from selenium import webdriver
import time
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
# 打开百度
driver.get('https://www.baidu.com/')
# 定位百度首页的地图按钮
elm = driver.find_element(By.XPATH,'//*[@id="s-top-left"]/a[3]')
# 判断元素是否可以点击
answer = elm.is_enabled()
print(answer)
time.sleep(3)
driver.quit()

执行结果:True,故可以点击

在实际测试中,会遇到某些按钮置灰的情况:

比如,登录场景,没有勾选协议,登录按钮处于置灰状态
在这里插入图片描述
对应代码:

<button data-v-2135d823="" type="button" class="confirm-btn disabled">登录</button>

勾选协议后,登录按钮变为可点击状态
对应代码:

<button data-v-2135d823="" type="button" class="confirm-btn">登录</button>

此时测试用例中就可以断言未勾选协议,按钮是否置灰

btnElm = driver.find_element(By.XPATH,'//div[@class='verify-phone']//button[contains(text(),'登录')]')
result = btnElm.is_enabled()
print(result)
assert not result   #未勾选协议,按钮应该灰显

2、判断元素是否可见

判断元素是否可见,WebElement对象调用is_displayed()
is_displayed()方法返回一个布尔值,若可见则返回:True。若不可见则返回:False

driver = webdriver.Chrome()
# 打开百度
driver.get('https://www.baidu.com/')
# 定位百度首页的地图按钮
elm = driver.find_element(By.XPATH,'//*[@id="s-top-left"]/a[3]')
# 判断元素是否可见
answer = elm.is_displayed()
print(answer)
driver.quit()

执行结果:True,故可见

3、判断元素是否可被选中

判断元素是否被选中,WebElement对象调用is_selected()
is_selected()方法返回一个布尔值,若可见则返回:True。若不可见则返回:False

driver = webdriver.Chrome()
# 打开百度
driver.get('https://www.baidu.com/')
# 定位百度首页的地图按钮
elm = driver.find_element(By.XPATH,'//*[@id="s-top-left"]/a[3]')
# 判断元素是否可选中
answer = elm.is_selected()
print(answer)
driver.quit()

执行结果:False,说明未被选中

总结:

1、元素若有is_enabled属性,则是不可点击,否则就是可点击

2、元素若有is_display:none属性,则是不可见的,否则就是可见的

3、元素若有selected属性,则是已被选择

相关文章:

selenium判断元素可点击、可见、可选

1、判断元素是否可以点击 判断元素是否可以点击&#xff0c;WebElement对象调用is_enabled() is_enabled()方法返回一个布尔值&#xff0c;若可点击返回&#xff1a;True。若不可点击则返回&#xff1a;False from selenium import webdriver import time from selenium.web…...

计算机网络重点概念整理-第六章 应用层【期末复习|考研复习】

计算机网络复习系列文章传送门&#xff1a; 第一章 计算机网络概述 第二章 物理层 第三章 数据链路层 第四章 网络层 第五章 传输层 第六章 应用层 第七章 网络安全 计算机网络整理-简称&缩写 文章目录 前言六、应用层6.1 网络应用模型6.1.1 客户/服务器模式C/S模型6.1.2 P…...

html2pdf

页面布局时将需要保存在同一页pdf的dom元素用div包裹&#xff0c;并为该div添加class类名&#xff0c;例如.convertPDF&#xff0c;如果有多页创建多个.convertPDF这个div&#xff0c;再循环保存pdf即可 用到了html2canvas和JsPdf这两个插件&#xff0c;自行站内搜索安装 pdf页…...

css中页面元素隐藏

display:nonevisibility:hiddenopcity:0页面中不存在存在存在重排会不会不会重绘会会不一定自身绑定事件不触发不触发能触发transition不支持支持支持子元素可复原不能能不能被遮挡的元素可触发事件能能不能 其他&#xff1a; 1.设置height&#xff0c;width&#xff0c;margi…...

dp三步问题

三步问题 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 class Solution { public:int waysToStep(int n) {vector<int> dp(n1,1);if(n1) return 1;dp[1]1;dp[2]2;for(int i3; i<n1; i){dp[i] ((dp[i-1]dp[i-2])%1000000007dp[i-3])%100…...

结构体和联合体嵌套访问

在JSON项目中&#xff0c;使用了联合体和结构体之间的嵌套&#xff0c;但是在访问内部的联合体和结构体的时候出现了问题&#xff0c;这篇文章作为记录&#xff0c;也希望能帮助遇到相同问题的好伙伴。 struct lept_value {union {struct str{char *s;size_t len;};double n;}…...

Linux ———— 管理磁盘

&#xff08;一&#xff09;MBR硬盘与GPT硬盘 硬盘按分区表的格式可以分为MBR硬盘与GPT硬盘两种硬盘格式。 MBR 硬盘&#xff1a;使用的是旧的传统硬盘分区表格式&#xff0c;其硬盘分区表存储在MBR(Master Boot Record&#xff0c;主引导区记录&#xff09;内。MBR位于…...

文字的编码

1 字符的编码方式 1.1 ASCII 是“American Standard Code for Information Interchange”的缩写&#xff0c;美国信息交换标准代码。电脑毕竟是西方人发明的&#xff0c;他们常用字母就 26 个&#xff0c;区分大小写、加上标点符号也没超过 127 个&#xff0c;每个字符用一个字…...

21.9 Python 使用Selenium库

Selenium是一个自动化测试框架&#xff0c;主要用于Web应用程序的自动化测试。它可以模拟用户在浏览器中的操作&#xff0c;如打开网页、点击链接、填写表单等&#xff0c;并且可以在代码中实现条件判断、异常处理等功能。Selenium最初是用于测试Web应用程序的&#xff0c;但也…...

C++初阶2

目录 一&#xff0c;auto关键字 1-1&#xff0c;auto的使用 1-2&#xff0c;基于范围auto的for循环 二&#xff0c;nullptr的运用 三&#xff0c;C类的初步学习 3-1&#xff0c;类的引用 3-2&#xff0c;类的访问权限 3-3&#xff0c;类的使用 1&#xff0c;类中函数的…...

网络安全(黑客)—小白自学

1.网络安全是什么 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 2.网络安全市场 一、是市场需求量高&#xff1b; 二、则是发展相对成熟…...

在win10下,使用torchviz对深度学习网络模型进行可视化

目录 1. 安装 graphviz 和 torchviz 2.安装 graphviz.exe 3.实例测试 4.如果你的电脑还是无法画图&#xff0c;并且出现了下面的报错&#xff1a; 5.参考文章&#xff1a; 1. 安装 graphviz 和 torchviz 首先打开 Anaconda prompt 进入自己的 pytorch 环境(图中 pt 是我自…...

【自然语言处理】【长文本处理】RMT:能处理长度超过一百万token的Transformer

相关博客 【自然语言处理】【长文本处理】RMT&#xff1a;能处理长度超过一百万token的Transformer 【自然语言处理】【大模型】MPT模型结构源码解析(单机版) 【自然语言处理】【大模型】ChatGLM-6B模型结构代码解析(单机版) 【自然语言处理】【大模型】BLOOM模型结构源码解析(…...

交叉编译工具链(以STM32MP1为例)

1.什么是交叉编译工具链&#xff1f; 在一个系统上进行编译&#xff0c;在另一个系统上进行执行 2.STM32MP1交叉编译工具链 3.交叉编译器内容 4.两种工具链模式 5.两种链接模式 6.工具使用 注意&#xff1a;OpenSTLinux已经提供了编译框架&#xff0c;不需要命令行手工编译 …...

使用 Pyro 和 PyTorch 的贝叶斯神经网络

一、说明 构建图像分类器已成为新的“hello world”。还记得当你第一次接触 Python 时&#xff0c;你的打印“hello world”感觉很神奇吗&#xff1f;几个月前&#xff0c;当我按照PyTorch 官方教程并为自己构建了一个运行良好的简单分类器时&#xff0c;我也有同样的感觉。 我…...

How to install the console system of i-search rpa on Centos 7

How to install the console system of i-search rpa on Centos 7 1、 准备1.1 、查看磁盘分区状态1.2、上传文件1.2.1、添加上传目录1.2.2、上传安装包1.2.3、解压安装包1.2.4、查看安装包结构 1.3、安装依赖包1.3.1、基础依赖包1.3.2 相关依赖 1.4、关闭防火墙1.5、解除SeLin…...

sql--索引使用 ---覆盖索引

覆盖索引 Select 后接 * 走id索引才是最优&#xff0c;使用二级索引则需要回表&#xff08;性能稍差&#xff09; 前缀索引 Create index 索引名 on 表名( 字段名( n ) ) n数字 n代表提取这个字符串的n个构建索引 &#xff1f;&#xff1f;那么 n 为几性能是最好的呢&…...

系统平台同一网络下不同设备及进程的话题通讯--DDS数据分发服务中间件

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言(1)中间件的介绍(2)DDS介绍(3)发布者(4)订阅者(5)idl文件(定义msg结构体)(6)QoS(Quality of Service)策略(7)DDS测试工具介绍(…...

轻量级 IDE 文本编辑器 Geany 发布 2.0

Geany 是功能强大、稳定、轻量的开发者专用文本编辑器&#xff0c;支持 Linux、Windows 和 macOS&#xff0c;内置支持 50 多种编程语言。 2005 年Geany 发布首个版本 0.1。上周四刚好是 Geany 诞生 18 周年纪念日&#xff0c;官方发布了 2.0 正式版以表庆祝。 下载地址&#…...

好用工具分享 | tmux 终端会话分离工具

目录 1 tmux的安装 2 tmux的基本操作 2.1 启动与退出 2.2 分离会话 2.3 查看会话 2.4 重接会话 2.5 杀死会话 2.6 切换会话 tmux是一个 terminal multiplexer&#xff08;终端复用器&#xff09;&#xff0c;它可以启动一系列终端会话。 我们使用命令行时&#xff0c;…...

STM32F103C8T6连接HC-06蓝牙模块的完整避坑指南:从AT指令调试到数据收发异常处理

STM32F103C8T6与HC-06蓝牙模块实战避坑手册&#xff1a;从AT指令异常到数据收发的深度解决方案 当你第一次尝试用STM32F103C8T6驱动HC-06蓝牙模块时&#xff0c;是否遇到过这样的场景&#xff1a;AT指令发送后如同石沉大海&#xff0c;串口调试助手始终一片空白&#xff1b;或是…...

雪女-斗罗大陆-造相Z-Turbo社区实践:在CSDN分享自定义风格LoRA训练心得

雪女-斗罗大陆-造相Z-Turbo社区实践&#xff1a;在CSDN分享自定义风格LoRA训练心得 最近在CSDN社区看到不少朋友在讨论用AI模型生成特定风格的角色图&#xff0c;尤其是像“斗罗大陆”这类有大量粉丝基础的作品。大家普遍有个痛点&#xff1a;直接用通用模型生成&#xff0c;角…...

数据库课程设计实战:构建文本分割结果的管理系统

数据库课程设计实战&#xff1a;构建文本分割结果的管理系统 每次做数据库课程设计&#xff0c;你是不是也头疼&#xff1f;选题要么太简单&#xff0c;像学生信息管理&#xff0c;做出来感觉没深度&#xff1b;要么太复杂&#xff0c;比如电商系统&#xff0c;光表关系就画晕…...

C++ constexpr 在工程中的应用场景

C constexpr 在工程中的应用场景 在现代C开发中&#xff0c;constexpr关键字因其强大的编译时计算能力&#xff0c;逐渐成为提升性能与代码可维护性的利器。它允许开发者在编译期完成复杂的计算和初始化&#xff0c;从而减少运行时开销&#xff0c;同时增强代码的静态安全性。…...

结合LSTM时序建模:深入理解SOONet处理视频连续性的机制

结合LSTM时序建模&#xff1a;深入理解SOONet处理视频连续性的机制 你有没有想过&#xff0c;为什么有时候看视频&#xff0c;AI能精准地知道“一个人从拿起杯子到喝水”这个完整动作的起止点&#xff1f;这背后&#xff0c;不仅仅是识别单张图片里的人在做什么&#xff0c;更…...

Qwen3.5-4B-Claude-Opus-GGUF保姆级教程:从零启动Web问答服务全流程

Qwen3.5-4B-Claude-Opus-GGUF保姆级教程&#xff1a;从零启动Web问答服务全流程 1. 模型与平台介绍 Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF是一个基于Qwen3.5-4B的推理蒸馏模型&#xff0c;特别强化了结构化分析、分步骤回答以及代码与逻辑类问题的处理能力。…...

游戏存档备份终极指南:用Ludusavi保护你的游戏进度永不丢失

游戏存档备份终极指南&#xff1a;用Ludusavi保护你的游戏进度永不丢失 【免费下载链接】ludusavi Backup tool for PC game saves 项目地址: https://gitcode.com/gh_mirrors/lu/ludusavi 你是否曾因电脑重装、系统崩溃或更换设备而丢失数百小时的游戏进度&#xff1f;…...

颠覆传统体验!5步打造完美魔兽争霸3环境:WarcraftHelper全方位优化指南

颠覆传统体验&#xff01;5步打造完美魔兽争霸3环境&#xff1a;WarcraftHelper全方位优化指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 经典游…...

OpenClaw飞书机器人实战:QwQ-32B驱动自动化问答系统

OpenClaw飞书机器人实战&#xff1a;QwQ-32B驱动自动化问答系统 1. 为什么选择OpenClaw飞书QwQ-32B组合&#xff1f; 去年冬天&#xff0c;我被一个重复性工作折磨得够呛——每天要处理几十条飞书消息&#xff0c;提取会议要点、整理待办事项、回复常见问题。直到发现OpenCla…...

CMIP6数据降尺度实战:用Python从零构建区域气候模型(附完整代码)

CMIP6数据降尺度实战&#xff1a;用Python从零构建区域气候模型 当全球气候模型&#xff08;GCM&#xff09;的分辨率无法满足区域研究需求时&#xff0c;降尺度技术成为连接全球与局部气候信息的桥梁。本文将带您从CMIP6数据获取开始&#xff0c;逐步实现统计降尺度和动力降尺…...