selenium-提升用例的稳定性-网络

做ui自动化测试的时候最大的问题是网络不稳定问题导致定位不到元素从而出错,下面提供几种解决方式
三种等待方式:
sleep(1) 调试的时候用,
隐式等待 implicitly_wait(2)等待整个页面2s
显示等待 webdriverwait

常用webdriver 提供的until 或者until_not 与expected_conditions模块结合使用判断元素是否可见
首先说一下expected_conditions模块提供判断元素可见的方法,,没有写全具体可看代码
1.title_is() title是预期的标题,必须完全匹配 ; 如果标题匹配则返回True,否则返回false
2.title_contians() 判断标题是否包含预期的内容,是返回Ture,否则返回false
3.presence_of_element_located() 判断元素是否加载到dom树里,这个时候并不一定可见。是返回元素webelement
4.visibility_of_element_located : 判断某个元素是否可见. 可见代表元素非隐藏,并且元素的宽和高都不等于0
5.visibility_of :跟上面的方法做一样的事情,只是上面的方法要传入locator,这个方法直接传定位到的element就好了
6.presence_of_all_elements_located : 判断是否至少有1个元素存在于dom树中。那么只要有1个元素存在,这个方法就返回True
7.text_to_be_present_in_element : 判断某个元素中的text是否 包含 了预期的字符串

我常用的是presence_of_element_located() 判断元素是否加载到dom树里,以此为例

from selenium.webdriver.support import expected_conditions as EC
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
driver = webdriver.Chorme()
driver.get('http://xxx')
time_out = 10 #超时时间
poll_frequency = 1 #步长
WebDriverWait(driver,time_out,poll_frequency).until(EC.presence_of_element_located((css selector,#id)))#表示每1s的时候查询一次元素是否出现,出现了就继续执行,没出现继续等待,超过10s没有出现等待的元素就抛出异常,

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值