selenium测试用例编写、隐式等待、显式等待

1.测试用例编写

用例的关键要素:

1)导入依赖

2)创建driver

3)执行自动化步骤

4)断言

如下图是一个简单的demo:

self.driver.maximize_window()最大化窗口页面,一般会存在于setup方法中
如果不添加teardown原来跑完的页面不会进行自动退出的,原页面资源没有自动回收;因此如果不想让浏览器自动退出的时候就不用添加teardown方法;一般情况下是要加的
 2.直接等待、隐式等待、显式等待
直接等待:直接导入time模块使用
 
隐式等待:
  • 含义:就是在创建driver时,为浏览器对象创建一个等待时间,这个方法是得不到某个元素就等待一段时间,直到拿到某个元素位置。
  • self.drivers.implicitly_wait(5),单位是秒
  • 这个是全局的,只要写在开头,每个代码间的等待时间都是5秒
  • 如果找到的元素,就不用等待5秒
  • 有时候会导致明明找到元素,但是却报错了,隐式等待估计是识别到了这个元素可见,也就是expected_conditions.visibility_of_element_located,但不关注其他元素的属性,比如可点击

Self.driver.implicity.wait(5)隐式等待,打开新页面的时候动态的等待页面元素,如果等待1s或者2s的时候打开页面将继续执行,最大等待5秒钟,存在于全局的变量;而直接等待就是等待5s,如果没打开页面也会抛异常

缺点:1)全局的,因此如果有的页面等待时间较长,或者因为网络的原因、找不到元素等,一直处于等待中;2) 隐式等待不能判断页面的元素是否可点击的,想要判断还需要其他的方法⚠️
显式等待:
  • 就是明确的要等到某个元素的出现或者是某个元素的可点击等条件,等不到,就一直等,除非在规定的时间之内都没找到,那么久跳出Exception
  • 下面的代码演示了By的使用、WebDriverWait显示等待、expected_conditions的使用
  • until(里面的函数返回值只有Ture和False)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

猜你喜欢

转载自www.cnblogs.com/zhaikunkun/p/12604333.html