使用 Selenium Python 检查元素是否存在
像 Selenium 这样的自动化工具使我们能够通过不同的语言和浏览器自动化 Web 流程并测试应用程序。 Python 是它支持的众多语言之一,并且是一种非常简单的语言。
它的Python客户端帮助我们通过Selenium工具与浏览器连接。 Web 测试对于开发 Web 应用程序至关重要,但更重要的是,它使我们能够自动化 Web 流程。
我们需要访问源代码并检查某些元素以自动化此类过程。
本文向您展示如何使用其 Python 客户端和 API 检查某个元素是否存在于 Selenium 中。
使用 find_element() 使用 Selenium Python 检查元素是否存在
要使用 Selenium Python 客户端,我们需要通过以下 pip 命令安装其包:
pip install selenium
除了Python客户端之外,如果我们要使用它们,还需要安装其他工具,例如ChromeDriver。 您可以相当轻松地下载并安装它。
现在,我们可以使用 Selenium 模块及其 Exception 部分来检查元素是否存在。 首先,我们使用 webdriver 模块访问浏览器代理(Chrome)并使用 get()
方法访问我们想要检查其元素的网页。
然后,使用 find_element()
方法,并传递 By.TAG_NAME 参数和要查找的元素(例如 h2)。 find_element()
方法使用 By 策略和定位器来查找元素。
在下面的代码中,我们使用By.TAG_NAME策略来查找我们想要的元素。 我们还可以使用 By.CSS_SELECTOR 来查找元素。
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.common.exceptions import NoSuchElementException
driver = webdriver.Chrome(executable_path="C:\chromedriver.exe")
driver.implicitly_wait(0.5)
driver.get("https://thehackernews.com/")
try:
element = driver.find_element(By.TAG_NAME, 'h2')
hackHead = element.text
print("Element exist")
print(hackHead)
except NoSuchElementException:
print("Element does not exist")
driver.close()
输出:
DeprecationWarning: executable_path has been deprecated, please pass in a Service object
driver = webdriver.Chrome(executable_path="C:\chromedriver.exe")
DevTools listening on ws://127.0.0.1:57551/devtools/browser/dce0d9db-6c42-402e-8770-13999aff0e79
Element exist
Pay What You Want for This Collection of White Hat Hacking Courses
我们获得了 Pay What You Want for This Collection of White Hat Hacking Courses 作为元素的内容,但您可能会注意到可执行文件路径周围有一个 DeprecationWarning。
DeprecationWarning: executable_path has been deprecated, please pass in a Service object
driver = webdriver.Chrome(executable_path="C:\chromedriver.exe")
为了解决这个问题,我们需要安装 webdriver-manager 模块来使用 pip 命令处理浏览器交互。
pip install webdriver-manager
然后,使用以下语句将模块导入到您的代码中。
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service
并使用service属性而不是executable_path,并将 Service()
和 ChromeDriverManager()
方法传递给service属性。
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
现在,代码变成:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.common.exceptions import NoSuchElementException
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
driver.implicitly_wait(0.5)
driver.get("https://thehackernews.com/")
try:
l= driver.find_element(By.TAG_NAME, 'h2')
s= l.text
print("Element exist -" + s)
except NoSuchElementException:
print("Element does not exist")
driver.close()
输出:
[WDM] - Downloading: 100%|████████████████████████████████████████████████████████████████████████████████████████████████| 6.29M/6.29M [00:03<00:00, 2.13MB/s]
DevTools listening on ws://127.0.0.1:57442/devtools/browser/2856cae0-e665-42c3-a20d-a847d52658c1
Element exist
Pay What You Want for This Collection of White Hat Hacking Courses
因为这是第一次运行,您可能会看到输出的 [WDM] 部分; 否则,只有 DevTools 消息和代码输出应该是可见的。 这样,您可以使用其 Python 客户端轻松检查 Selenium 中是否存在某个元素。
相关文章
Python 中的 Schedule
发布时间:2023/07/03 浏览次数:194 分类:Python
-
本篇文章将介绍 Python 中的 Schedule 包,以在特定时间间隔后定期安排作业。Schedule是Python中的一个轻量级进程调度程序库 在 Python 中安装 Schedule 库
Python 中的工厂模式
发布时间:2023/07/03 浏览次数:174 分类:Python
-
This tutorial demonstrates the use of `factory design pattern` in Python.工厂设计模式属于创意设计模式范畴。 创建设计模式提供了许多对象创建技术,从而提高了代码的可重用性和灵活性。在Python中实现工厂
使用 Python 创建端口扫描器
发布时间:2023/07/03 浏览次数:58 分类:Python
-
本篇文章将介绍如何在 Python 中创建端口扫描器。使用 Python 创建端口扫描器 首先,让我们了解端口的基础知识。 端口是网络中的端点,通过它在服务器和客户端之间传递一些信息。
Python 中的多态性
发布时间:2023/07/03 浏览次数:58 分类:Python
-
本篇文章将介绍如何在 Python 中实现多态性。Python 中的多态性 理解这一点的最佳方法是使用 len() 函数。 对于不同的对象,该函数有不同的解释。
列出 Python 的事件相关包
发布时间:2023/07/03 浏览次数:190 分类:Python
-
Python 编程语言具有包,它们是模块的集合。 本文将列出 Python 编程语言的事件相关包。列出 Python 的事件相关包 不同的 Python 包使用不同的事件术语。
用 Python 创建 turtle 图形
发布时间:2023/07/02 浏览次数:139 分类:Python
-
本篇文章将讨论 Python 中海龟图形的一些示例。在 Python 中创建图形输出屏幕 我们从创建输出屏幕开始。 turtle.getscreen() 方法初始化一个变量为屏幕,然后弹出一个屏幕。
Python 猜谜游戏
发布时间:2023/07/02 浏览次数:90 分类:Python
-
本篇文章将介绍用 Python 开发一个简单的猜数字游戏的过程。猜谜游戏机制 我们正在尝试开发一款游戏,从用户处获取上限和下限,生成该范围内的随机数,要求用户猜测该数字,并计算用户
Python 中的 Gzip 解压
发布时间:2023/07/02 浏览次数:56 分类:Python
-
我们将介绍Python中的gzip解压。 我们还将介绍如何使用 gzip 解压缩来解压缩压缩内容。Python 中的 Gzip 解压 Python 中构建了许多用于压缩和解压缩目的的库,但我们将介绍 Gzip 库。
在 Python 中创建奇数列表
发布时间:2023/07/02 浏览次数:114 分类:Python
-
我们将在本文中介绍在 Python 中创建奇数列表的不同方法。Python 中的奇数 定义奇数有两种方法,第一种是整数不能被 2 整除时的情况。另一种是整数除以 2 时余数为 1 的情况。