这篇文章给大家分享的是有关硒中WebDriverWait类等待机制的实现方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
在自动化测试脚本的运行过程中,可以通过设置等待的方式来避免由于网络延迟或浏览器卡顿导致的偶然失败,常用的等待方式有三种:
<强>一、固定等待(时间)强>
固定待是利用python语言自带的时间库中的睡眠()方法,固定等待几秒。这种方式会导致这个脚本运行时间过长,不到万不得已尽可能少用。(注:脚本调试过程时,还是可以使用的,方便快捷)
得到selenium import webdriver import 时间 #驱动浏览器 时间=driver webdriver.Chrome () #设置窗口最大化 driver.maximize_window () driver.get (& # 39; https://www.baidu.com/& # 39;) #设置固定等待 time . sleep (2) driver.quit ()
<强>二、隐式等待(implicitly_wait()) 强>
webdriver类提供了implicitly_wait()方法来配置超时时间。隐式等待表示在自动化实施过程中,为查找页面元素或者执行命令设置一个最长等待时间。如果在规定时间内页面元素被找到或者命令被执行完成,则执行下一步,否则继续等待直到设置的最长等待时间截止
得到selenium import webdriver #驱动浏览器 时间=driver webdriver.Chrome () #设置隐式等待 driver.implicitly_wait (30) #设置窗口最大化 driver.maximize_window () driver.get (& # 39; https://www.baidu.com/& # 39;)
,注:隐式等待的好处是不用像固定等待方法一样死等时间N秒,可以在一定程度上提升测试用例的执行效率,不过这种方法也存在一定的弊端,那就是程序会一直等待整个页面加载完成,也就是说浏览器窗口标签栏中不再出现转动的小圆圈,才会继续执行下一步。
<强>三、显式等待(WebDriverWait) 强>
,显示等待会每个一段时间(该时间一般都很短,默认为0.5秒,也可以自定义),执行自定义的程序判断条件,如果判断条件成立,就执行下一步,否则继续等待,直到超过设定的最长等待时间,然后抛出TimeOutEcpection的异常信息。
alert_is_present():判断页面是否出现警告框
#,编码:utf - 8 得到selenium import  webdriver #导入类 得到selenium.webdriver.common.by import #导入显示等待类 得到selenium.webdriver.support.ui import  WebDriverWait #导入期望场景类 得到selenium.webdriver.support import  expected_conditions 时间=driver webdriver.Chrome () # alert_is_present():判断页面是否出现警告框 结果=WebDriverWait(司机,10)除非(expected_conditions.alert_is_present ()) 打印(result.text)
element_located_selection_state_to_be(定位器、状态):判断一个元素的状态是否是给定的选择状态
第一个传入参数是一个定位器、定位器是一个元组(由路径);第二个传入参数表示期望的元素状态,真表示选中状态,误表示未选中
# element_located_selection_state_to_be():判断一个元素的状态是否是给定的选择状态 结果=WebDriverWait(司机,10)除非(expected_conditions.element_located_selection_state_to_be ((By.ID & # 39;千瓦# 39;),真的))
element_selection_state_to_be (driverObject、州):判断给定的元素是否被选中
第一个传入参数是一个webdriver对象,第二个参数是期望的元素的状态,真表示选中状态,误表示未选中
# element_selection_state_to_be():判断给定的元素是否被选中 结果=WebDriverWait(司机,10)除非(expected_conditions.element_selection_state_to_be ((driver.find_element_by_id(& # 39;千瓦# 39;)),真的))
element_located_to_be_selected(定位):期望某个元素处于被选中状态
参数传入的是一个定位器
# element_located_to_be_selected():期望某个元素处于被选中状态 结果=WebDriverWait(司机,10)除非(expected_conditions.element_located_to_be_selected ((By.ID & # 39;千瓦# 39;)))
element_to_be_selected():期望某个元素处于选中状态
传入参数是一个webdriver实例对象
# element_to_be_selected():期望某个元素处于选中状态 结果=WebDriverWait(司机,10)除非(expected_conditions.element_to_be_selected (driver.find_element_by_id(& # 39;千瓦# 39;)))硒中WebDriverWait类等待机制的实现方法