selenium判断元素是否存在的方法

文章目录

快捷方法

selenium没有exist_xxx相关的方法,无法直接判断元素存在。但是锁定元素时使用的browser.find_elements(By.CSS_SELECTOR, "css元素")会返回一个列表list,如果不存在这个元素就会返回一个空列表。因此我们曲线救国,比如:

py 复制代码
if len(browser.find_elements(By.CSS_SELECTOR, "a.paging_next")) == 0:
	# 元素不存在的逻辑
	pass
else:
	# 元素存在的逻辑
	pass

完整示例程序

比如使用如下代码获取一个网页:

py 复制代码
from selenium import webdriver
from selenium.webdriver.common.by import By

option = webdriver.ChromeOptions()
option.add_argument('--disable-gpu')
option.add_argument('lang=zh_CN.UTF-8')
prefs = {
    "profile.managed_default_content_settings.images": 2,  # 禁止加载图片
}
option.add_experimental_option("prefs", prefs)
browser = webdriver.Chrome(options=option)
browser.get("https://www.baidu.com")

得到百度的页面

此时如果随便索引一个,结果为0

py 复制代码
print(len(browser.find_elements(By.CSS_SELECTOR, "a.paging_next")))

而如果索引下面那一部分,得到结果18

py 复制代码
print(len(browser.find_elements(By.CSS_SELECTOR, "div#s-top-left a")))

索引网页内存在的内容,得到结果['新闻', 'hao123', '地图', '贴吧', '视频', '图片', '网盘', '更多', '', '', '', '', '', '', '', '', '', '']

py 复制代码
print([_v.text for _v in browser.find_elements(By.CSS_SELECTOR, "div#s-top-left a")])
相关推荐
汽车仪器仪表相关领域5 小时前
ZRT-II 机器人减速器性能测试系统
功能测试·测试工具·安全·机器人·压力测试·可用性测试
线束线缆组件品替网5 小时前
TE Linx RF 物联网射频模块的 RF 线缆连接设计思路
数码相机·物联网·测试工具·电脑·音视频·pcb工艺
絔宝6 小时前
在eclipse中创建Maven项目-用于学习Selenium 自动化测试
学习·selenium·eclipse·maven
测试狗科研平台6 小时前
同步辐射EXAFS拟合与数据分析的原理和处理流程-测试GO
科技·测试工具·材料工程
汽车仪器仪表相关领域1 天前
GZCVL T-II 安全防坠器测试系统
功能测试·测试工具·安全·单元测试·压力测试·可用性测试
可可南木1 天前
ICT测试日志 --2--解释日志记录
功能测试·测试工具·pcb工艺
软件测试小仙女1 天前
认真测试大语言模型(LLM)
软件测试·人工智能·测试工具·ai·语言模型·自然语言处理·llm
oh-pinpin1 天前
【jmeter】-脚本-遇自动转义要使用CSV文件
测试工具·jmeter
可可南木2 天前
ICT测试日志 --1--数据结构
功能测试·测试工具·pcb工艺