栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

selenium三种等待方式

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

selenium三种等待方式

文章目录
  • 前言
  • 一、显示等待
  • 二、显示等待
  • 三、强制等待


前言

在实际测试过程中,在操作某个元素之前都会有一个等待过程,而且selenium等待元素常见的方式有三种。强制等待、显示等待、隐示等待,本文主要就针对这三种等待模式以个人理解来讲述下自己在脚本编写过程中使用心得


一、显示等待

显示等待是针对特定的元素设置等待事件,在设置的时间内,默认每隔一段时间(默认0.5s)检测一次当前页面元素,在规定的时间内找到元素,则执行下一步,超时没有找到则抛异常(NoSuchElementExcepetion)

from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
import time
driver = webdriver.chrome()  ==获取chrome浏览器驱动对象
方法及对应参数解释:
WebDriverWait(driver,timeout,poll_frequency=0.5,ignored_exceptions=None)
driver:浏览器驱动
timeout:超时时间
poll_frequency:扫描间隔时间
ignore_excepetion:超时异常信息,默认抛出NoSuchElementExcepetion
场景使用:
1.显示等待使用一般通过expected_conditions模块结合until()与not_until()两种等待方法使用
#判断元素是否存在页面
presence_of_element_located(*locate):入参为一个元祖,需要传入元素类型和对应元素信息,底层自动调用
WebDriverWait(driver=driver,timeout=1).until(EC.presence_of_element_located((By.ID,"111")),message="test")
#判断元素不存在页面
WebDriverWait(driver=driver,timeout=1).until_not(EC.presence_of_element_located((By.ID,"111")),message="test")
#判断是否存在alert
WebDriverWait(driver=driver,timeout=1).until(EC.alert_is_present((By.ID,"alert")),message='None')
#判断标题是否等于预期值
WebDriverWait(driver=driver,timeout=1).until(EC.title_is(r"百度一下,你就知道"),message='None')
#判断标题是否包含预期值
WebDriverWait(driver=driver,timeout=1).until(EC.title_contains(r"百度一下,你就知道"),message='None')
#判断元素是否可见
WebDriverWait(driver=driver,timeout=1).until(EC.presence_of_all_elements_located((By.ID,"kw")),message='None')
#判断元素是否可点击
WebDriverWait(driver=driver,timeout=1).until(EC.element_to_be_clickable((By.ID,"kw")),message='None')
二、显示等待

显示等待作用于整个driver,超过时间未加载完成就抛异常,由于作用域的问题是会在每个页面加载时都会等待且会直到页面整个加载完成后才会执行下一步,在一定程度上会影响整个脚本的效率,一般在获取url后使用

driver.implicitly_wait(5) ==单位s
三、强制等待

调用time库中的sleep,让脚本强制停止到达设置时间后执行后面的脚本,极大影响脚本效率,故不到万不得已不推荐使用

time.sleep(5) ==单位s
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/977873.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号