51Testing软件测试论坛

标题: selenium批量运行脚本时,系统页面素加载快慢很不稳定,应该如何做等待机制呀? [打印本页]

作者: 张鱼鱼    时间: 2018-2-7 17:22
标题: selenium批量运行脚本时,系统页面素加载快慢很不稳定,应该如何做等待机制呀?
请教大家一个问题,学习使用selenium进行自动化测试时:有的时候元素加载慢,我就用这个函数WebDriverWait(browser,15).until(lambda x:x.find_element_by_id("ProjectGateWayName"))。但是发现这个远远不够,因为每个元素加载这次运行时候不慢,下次可能就慢。感觉总不能每个元素加载前都写一个WebDriverWait()吧。。。。
大家都是咋处理的呀?


作者: Real_小T    时间: 2018-2-7 17:54
隐式等待是对全局都生效的 可以考虑用
作者: youreyebows    时间: 2018-2-8 09:07
自己封装一个 getElement方法,里面写上等待元素出现的方法。

那么每次去获取元素的时候,都调用自己封装的这个方法,就可以了。

简易的java代码参考:

public WebElement getElement(final By by)
{

     .....
     element  = new WebDriverWait(driver,10).until(new ExpectedCondition<WebElement>()
     {....}
     )

}

只要元素在10秒内出现,就一直等到它出现,再执行其他操作。如果超过10秒没出现就catch异常。  时间10秒是自己写的,可以任意定义。

既然有需求,我会写个关于这个问题的文章。欢迎关注哦。
作者: 张鱼鱼    时间: 2018-2-8 10:32
youreyebows 发表于 2018-2-8 09:07
自己封装一个 getElement方法,里面写上等待元素出现的方法。

那么每次去获取元素的时候,都调用自己封 ...

自己封装方法的效果跟,调用WebDriverWait()效果是不是一样呀。像这种元素加载不稳定的,可能是程序原因还是服务器原因还是代码、工具、环境的原因。如何排查确定呢
作者: 张鱼鱼    时间: 2018-2-26 09:55
Real_小T 发表于 2018-2-7 17:54
隐式等待是对全局都生效的 可以考虑用

多谢,已采用




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2