介绍
小编给大家分享一下预期条件下模块是什么,希望大家阅读完这篇文章后大所收获、下面让我们一起去探讨吧!
是硒的一个子模块,selenium.webdriver.support.expected_conditions
可以对网页上元素是否存在,可点击等等进行判断,一般用于断言或与WebDriverWait配合使用
2.1 WebDriverWait与expected_conditions配合使用实例一
导入操作系统 导入的时间 从硒进口webdriver 从selenium.webdriver.support。等进口WebDriverWait 从selenium.webdriver。支持导入expected_conditions EC 司机=webdriver.Chrome () driver.get (& # 39; https://www.baidu.com& # 39;) #等待10年代,等待过程中判断网页标题是否是“百度一下,你就知道“ #如果是就继续执行后续代码,反之等待10年代结束时报的错 WebDriverWait(司机,10)除非(EC.title_is(“百度一下,你就知道“))
2.2 WebDriverWait与expected_conditions配合使用实例二
从selenium.webdriver.common.by进口 从selenium.webdriver.support。等进口WebDriverWait 从selenium.webdriver。支持导入expected_conditions EC 司机=webdriver.Chrome () driver.get (& # 39; https://www.baidu.com& # 39;) #等待10年代,等待过程中如果定位到元素,就直接执行后续的代码,反之等待10 s后报错误信息 元素=WebDriverWait(司机,10)除非(EC.visibility_of (driver.find_element (By.ID & # 39;千瓦# 39;))) 元素。send_keys(& # 39;新梦想软件测试& # 39;)
2.3 unittest与expected_conditions配合使用实例
进口时间 进口unittest 从硒进口webdriver 从selenium.webdriver。支持导入expected_conditions EC 类TestDemo (unittest.TestCase): def设置(自我): 自我。司机=webdriver.Chrome () def拆卸(自我): time . sleep (2) self.driver.quit () def test_searchinputbox_is_visibility(自我): self.driver.get (& # 39; https://www.baidu.com& # 39;) # EC.visibility_of()判断元素是否可见,如果可见就返回这个元素 self.assertTrue (EC.visibility_of (self.driver.find_element (By.ID & # 39;千瓦# 39;))) if __name__==& # 39; __main__ # 39;: unittest.main ()
实例小结:
实例一与实例二中用到了显式等待WebDriverWait类,该块不在此文中介绍;
实例三中self.assertTrue()方法断言括号内的表达式返回值是否为真正的,在python中代表真正的为非0,非空,真的,而
EC.visibility_of()方法中的定位方法能定位到元素就会返回一个对象,满足非空为真实的,所以断言会通过;
注意EC.visibility_of()方法返回的对象非真实元素对象,所以不能执行如下代码:(正确方式参照实例二的写法)
元素=EC.visibility_of (self.driver.find_element (By.ID & # 39;千瓦# 39;))
引用>
element.send_keys (& # 39; newdream& # 39;)
#判断当前页面的标题是否精确等于预期,返回布尔值 WebDriverWait(司机,10)除非(EC.title_is(“百度一下,你就知道“)) #判断当前页面的标题是否包含预期字符串,返回布尔值 WebDriverWait(司机,10)除非(EC.title_contains(& # 39;新# 39;)) #判断当前页面的url是否精确等于预期,返回布尔值 WebDriverWait(司机,10)除非(EC.url_contains (& # 39; https://www.baidu.com& # 39;)) #判断当前页面的url是否包含预期字符串,返回布尔值 WebDriverWait(司机,10)除非(EC.url_contains(& # 39;百度# 39;)) #判断当前页面的url是否满足字符串正则表达式匹配,返回布尔值 WebDriverWait(司机,10)除非(EC.url_matches(& # 39;。+百度。+ & # 39;)) #判断元素是否出现,只要有一个元素出现,返回元素对象 WebDriverWait(司机,10)除非(EC.presence_of_element_located ((By.ID & # 39;千瓦# 39;))) #判断元素是否可见,返回元素对象 WebDriverWait(司机,10)除非(EC.visibility_of (driver.find_element (By.ID & # 39;千瓦# 39;))) #判断元素是否包含指定文本,返回布尔值 WebDriverWait(司机,10)除非(EC.text_to_be_present_in_element ((By.NAME & # 39; tj_trnews& # 39;), & # 39;新闻& # 39;)) #判断该帧是否可以开关进去,如果可以的话,返回真实并且开关进去 WebDriverWait(司机10)除非(EC.frame_to_be_available_and_switch_to_it (By.xpath & # 39;//iframe # 39;)) #判断某个元素是否可见并且是可点击的,如果是的就返回这个元素,否则返回错误的 WebDriverWait(司机,10)除非(EC.element_to_be_clickable ((By.NAME & # 39; tj_trnews& # 39;))) #判断某个元素是否被选中,一般用在下拉列表 WebDriverWait(司机,10)除非(EC.element_to_be_selected (driver.find_element (By.xpath & # 39;//输入[@type=癱heckbox"] & # 39;))) #判断页面上是否存在警报,如果有就切换到警报并返回警报的内容 WebDriverWait(司机,10)除非(EC.alert_is_present ())预期条件下模块是什么