当前位置: 首页 > 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属性,则是已被选择

http://www.lryc.cn/news/211973.html

相关文章:

  • 计算机网络重点概念整理-第六章 应用层【期末复习|考研复习】
  • html2pdf
  • css中页面元素隐藏
  • dp三步问题
  • 结构体和联合体嵌套访问
  • Linux ———— 管理磁盘
  • 文字的编码
  • 21.9 Python 使用Selenium库
  • C++初阶2
  • 网络安全(黑客)—小白自学
  • 在win10下,使用torchviz对深度学习网络模型进行可视化
  • 【自然语言处理】【长文本处理】RMT:能处理长度超过一百万token的Transformer
  • 交叉编译工具链(以STM32MP1为例)
  • 使用 Pyro 和 PyTorch 的贝叶斯神经网络
  • How to install the console system of i-search rpa on Centos 7
  • sql--索引使用 ---覆盖索引
  • 系统平台同一网络下不同设备及进程的话题通讯--DDS数据分发服务中间件
  • 轻量级 IDE 文本编辑器 Geany 发布 2.0
  • 好用工具分享 | tmux 终端会话分离工具
  • 计算机网络重点概念整理-第三章 数据链路层【期末复习|考研复习】
  • 迅速的更改conda 环境的名称!
  • 基本微信小程序的外卖点餐订餐平台
  • 十大排序算法(C语言)
  • iTransformer: INVERTED TRANSFORMERS ARE EFFECTIVE FOR TIME SERIES FORECASTING
  • QT C++ AES字符串加密实现
  • 关于mysql json字段创建索引
  • “探索Linux世界:从CentOS安装到常见命令使用“
  • SVN出现Cleanup failed to process the following paths...
  • gitee上传项目
  • 实现文件上传和下载