selenium学习:等待方式

ops/2024/12/12 4:46:41/

隐式等待

1.针对查找元素设置最大的超时时间
2.可以全局性的设置
3.不满足时,提示no such element

driver.implicitly_wait(5) #对查找元素最大的超时时间,如果超过最大等待时间后,没有找到元素,则会报错:no such #elementexception

显式等待

直到传递给他的条件得到解决,才会继续,否则会报错。他会以一定频率调用该条件,直到等待超时结束
1.不仅仅针对元素查找,还支持很多条件
2.显示等待支持自定义条件
3.不满足时报错TimeoutException

  wait = WebDriverWait(driver,10)#常见显示等待对象,其中包含参数(driver,timeout=10,poll_frequency=0.5) 超时时间时10s,每0.5秒去轮询login_link=wait.until(expected_conditions.presence_of_element_located((By.LINK_TEXT,'登录')))#expected_conditions 方法名字#(By.LINK_TEXT,'登录')是一个元组

自定义

参考expected_conditions里面的方法
1.页面包含指定元素

def text_contains(text:str):def _predicate(driver):return text in driver.page_sourcereturn _predicate

expected_conditions文件中的方法
在这里插入图片描述
2.自定义显示等待-点击元素成功

def click_success(locator):def _predicate(driver):try:element = driver.find_element(*locator)element.click()return Trueexcept:return Falsereturn _predicate
    wait = WebDriverWait(driver,timeout=10)wait.until(click_success((By.LINK_TEXT,'进入个人中心')))# driver.find_element(By.LINK_TEXT,'进入个人中心').click()

sleep()

time.sleep(n)


http://www.ppmy.cn/ops/141160.html

相关文章

黑马点评项目笔记

代码仓库:https://gitcode.com/xu1feng/hm-dianpnig/overview,欢迎star~ 整体功能架构图 短信登录 导入黑马点评项目 首先,导入数据库SQL文件hmdp.sql。 其中的表有: tb_user:用户表tb_user_info:用户…

L22.【LeetCode笔记】相交链表(新版)

目录 1.题目 代码模板 2.分析 ​编辑 算法误区 正确方法1 但不能通过所有的测试用例 修改后 提交结果 正确方法2 节省代码的技巧 1.题目 https://leetcode.cn/problems/3u1WK4/description/ 给定两个单链表的头节点 headA 和 headB ,请找出并返回两个单…

【深入探讨PostgreSQL:彻底删除数据并释放索引空间】——让数据库空间管理更高效!

全文目录: 开篇语前言 🌟📜 目录1. DELETE真的删除了吗? 🤔2. 删除数据后如何释放索引空间? 📉2.1 VACUUM 🧹2.2 VACUUM FULL 🧹💯2.3 REINDEX 重新索引 &…

【Kubernetes理论篇】容器集群管理系统Kubernetes(K8S)

Kubernetes集群部署基本管理实战 这么好的机会,还在等什么! 01、Kubernetes 概述 K8S是什么 K8S 的全称为 Kubernetes (K12345678S),PS:“嘛,写全称也太累了吧,写”。不如整个缩写 K8s 作为缩写的结果…

从0到1实现项目Docker编排部署

在深入讨论 Docker 编排之前,首先让我们了解一下 Docker 技术本身。Docker 是一个开源平台,旨在帮助开发者自动化应用程序的部署、扩展和管理。自 2013 年推出以来,Docker 迅速发展成为现代软件开发和运维领域不可或缺的重要工具。 Docker 采…

工具篇:(一)MacOS 下使用 Navicat 管理 MySQL 数据库:详细图文教程与常见问题解决

MacOS 下使用 Navicat 管理 MySQL 数据库:详细图文教程与常见问题解决 在这篇文章中,我将分享如何在 macOS 上使用 Navicat 来管理 MySQL 数据库。这是一份详细的教程,包括 Navicat 的下载、安装、配置以及使用步骤,并附上亲测的…

【Golang】Go语言编程思想(二):函数式编程

函数式编程 函数与闭包 支持函数式编程的语言当中,函数是一等公民,参数、变量、返回值都可以是函数。 以 adder 为例,下例实现了一个函数式编程: package mainimport "fmt"func adder() func(int) int {sum : 0retu…

华纳云:哪些行业会用到大硬盘存储服务器?

大硬盘存储服务器被广泛应用于需要大量数据存储、处理和管理的多个领域。以下是一些典型的应用场景: 1. 数据中心和云计算:数据中心需要为各种服务提供后端支持,包括云存储、虚拟化、数据库管理和备份恢复等。大数据硬盘服务器能够提供必要的…