张鱼鱼 发表于 2018-2-7 17:22:01

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

请教大家一个问题,学习使用selenium进行自动化测试时:有的时候元素加载慢,我就用这个函数WebDriverWait(browser,15).until(lambda x:x.find_element_by_id("ProjectGateWayName"))。但是发现这个远远不够,因为每个元素加载这次运行时候不慢,下次可能就慢。感觉总不能每个元素加载前都写一个WebDriverWait()吧。。。。
大家都是咋处理的呀?

Real_小T 发表于 2018-2-7 17:54:01

隐式等待是对全局都生效的 可以考虑用

youreyebows 发表于 2018-2-8 09:07:38

自己封装一个 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:42

youreyebows 发表于 2018-2-8 09:07
自己封装一个 getElement方法,里面写上等待元素出现的方法。

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

自己封装方法的效果跟,调用WebDriverWait()效果是不是一样呀。像这种元素加载不稳定的,可能是程序原因还是服务器原因还是代码、工具、环境的原因。如何排查确定呢

张鱼鱼 发表于 2018-2-26 09:55:24

Real_小T 发表于 2018-2-7 17:54
隐式等待是对全局都生效的 可以考虑用

多谢,已采用
页: [1]
查看完整版本: selenium批量运行脚本时,系统页面素加载快慢很不稳定,应该如何做等待机制呀?