千纸鹤

  博客园  ::  :: 新随笔  ::  ::  :: 管理
  5 随笔 :: 70 文章 :: 0 评论 :: 9301 阅读
《一》强制等待:sleep()
(1)强制等待,设置固定休眠时间
(2)实例:sleep(2)

《二》隐式等待:implicitly_wait()
(1)全局等待,只需要设置一次;
(2)在指定的时间范围内不断的去查找元素,直到成功的获取找到该元素,然后执行后面的操作
(3)在指定的时间范围内仍未获取该元素,则抛出异常:默认抛出异常为:NoSuchElementException
(4)特点:基于等到整个页面加载完成之后才生效
(5)实例:driver.implicitly_wait(5)
driver.get('http://www.baidu.com')
driver.find_element('id', 'kw').send_keys('xuzhu')
driver.find_element('id', 'su').click()

《三》显示等待:WebDriverWait
(1)可针对单个元素来进行等待,效率较高。也是在指定的时间范围内,每隔一段时间检测该元素是否存在,找到后马上执行下一步
(2)在指定的时间范围内仍未获取该元素,则抛出异常::默认抛出异常为:TimeoutException
(3)显示等待两种函数:显式等待分为until和until_not两种函数来实现等待,作用是完全相反
(4)实例
link_el = WebDriverWait(driver, 5, 0.5).until(
lambda el: driver.find_element('xpath', '//*[@id="1"]/h3/a'), message='显式等待查找失败'
)
link_el.click()
print(link_el)

《四》当显式与隐式同时存在
(1)如果显示等待的元素找不到,则抛出超时异常
(2)基于两者等待机制的时间设定,默认遵循时间更长的等待

《五》弹窗机制
(1)三类弹窗机制
1.alert弹窗:(确定)
2.confirm弹窗:(确定和取消)
3.prompt弹窗:(文本框、确认和取消)
(2)切换到弹窗
alert = driver.switch_to.alert
(3)确认按钮:alert.accept()
(4)取消按钮:alert.dismiss()
(5)输入文本:alert.send_keys()
(6)获取弹窗的文本信息:text = alert.text
posted on   隆江猪脚饭  阅读(52)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示