预期条件下模块是什么

  介绍

小编给大家分享一下预期条件下模块是什么,希望大家阅读完这篇文章后大所收获、下面让我们一起去探讨吧!


是硒的一个子模块,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 ())

预期条件下模块是什么