千纸鹤

  博客园  ::  :: 新随笔  ::  ::  :: 管理

《0075》第七章 WebUI自动化测试:三类等待

《一》强制等待: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 2022-05-08 16:14  运维2005  阅读(58)  评论(0)    收藏  举报