热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

三种判断元素存在的方法及其使用

本文介绍了三种判断元素存在的方法,分别是使用try...except、elements定义一组元素方法和结合WebDriverWait和expected_conditions判断。通过这些方法可以判断元素是否存在,存在则返回True,不存在则返回False。同时提供了相应的代码示例和使用说明。

这个可以说是被问烂的题了,判断元素存在方法有三种:

方法一,用try...except...

~~~

def is_element_exsist(driver, locator):

'''

判断元素是否存在,存在返回True,不存返回False

:param locator: locator为元组类型,如("id", "yoyo")

:return: bool值,True or False

'''

try:

driver.find_element(*locator)

return True

except Exception as msg:

print("元素%s找不到:%s" % (locator, msg))

return False

if __name__ == '__main__':

loc1 = ("id", "yoyo") # 元素1

print(is_element_exsist(driver, loc1))

~~~

方法二:用elements定义一组元素方法

~~~

def is_element_exsist1(driver, locator):

'''

判断元素是否存在,存在返回True,不存返回False

:param locator: locator为元组类型,如("id", "yoyo")

:return: bool值,True or False

'''

eles = driver.find_elements(*locator)

if len(eles) <1:

return False

else:

return True

if __name__ &#61;&#61; &#39;__main__&#39;:

loc1 &#61; ("id", "yoyo") # 元素1

print(is_element_exsist1(driver, loc1))

~~~

(强烈推荐&#xff01;)方法三&#xff1a;结合WebDriverWait和expected\_conditions判断

~~~

from selenium import webdriver

from selenium.webdriver.support import expected_conditions as EC

from selenium.webdriver.support.ui import WebDriverWait

def is_element_exsist2(driver, locator):

&#39;&#39;&#39;

结合WebDriverWait和expected_conditions判断元素是否存在,

每间隔1秒判断一次&#xff0c;30s超时&#xff0c;存在返回True,不存返回False

:param locator: locator为元组类型&#xff0c;如("id", "yoyo")

:return: bool值&#xff0c;True or False

&#39;&#39;&#39;

try:

WebDriverWait(driver, 30, 1).until(EC.presence_of_element_located(locator))

return True

except:

return False

if __name__ &#61;&#61; &#39;__main__&#39;:

loc1 &#61; ("id", "yoyo") # 元素1

print(is_element_exsist2(driver, loc1))

~~~



推荐阅读
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • Explore how Matterverse is redefining the metaverse experience, creating immersive and meaningful virtual environments that foster genuine connections and economic opportunities. ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • Docker的安全基准
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • 本文介绍如何使用Objective-C结合dispatch库进行并发编程,以提高素数计数任务的效率。通过对比纯C代码与引入并发机制后的代码,展示dispatch库的强大功能。 ... [详细]
  • Java 中 Writer flush()方法,示例 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文深入探讨了如何通过调整InnoDB的关键配置参数来优化MySQL的随机IO性能,涵盖了缓存、日志文件、预读机制等多个方面,帮助读者全面提升数据库系统的性能。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • QUIC协议:快速UDP互联网连接
    QUIC(Quick UDP Internet Connections)是谷歌开发的一种旨在提高网络性能和安全性的传输层协议。它基于UDP,并结合了TLS级别的安全性,提供了更高效、更可靠的互联网通信方式。 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
author-avatar
Manordo
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有