热门标签 | 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),并提供具体的代码示例。 ... [详细]
  • 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性能,涵盖了缓存、日志文件、预读机制等多个方面,帮助读者全面提升数据库系统的性能。 ... [详细]
  • Python 异步编程:深入理解 asyncio 库(上)
    本文介绍了 Python 3.4 版本引入的标准库 asyncio,该库为异步 IO 提供了强大的支持。我们将探讨为什么需要 asyncio,以及它如何简化并发编程的复杂性,并详细介绍其核心概念和使用方法。 ... [详细]
  • 本文详细记录了在基于Debian的Deepin 20操作系统上安装MySQL 5.7的具体步骤,包括软件包的选择、依赖项的处理及远程访问权限的配置。 ... [详细]
  • PyCharm中配置Pylint静态代码分析工具
    本文详细介绍如何在PyCharm中配置和使用Pylint,帮助开发者进行静态代码检查,确保代码符合PEP8规范,提高代码质量。 ... [详细]
  • 本文详细介绍了 GWT 中 PopupPanel 类的 onKeyDownPreview 方法,提供了多个代码示例及应用场景,帮助开发者更好地理解和使用该方法。 ... [详细]
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社区 版权所有