51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2860|回复: 4
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-2-7 17:22:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教大家一个问题,学习使用selenium进行自动化测试时:有的时候元素加载慢,我就用这个函数WebDriverWait(browser,15).until(lambda x:x.find_element_by_id("ProjectGateWayName"))。但是发现这个远远不够,因为每个元素加载这次运行时候不慢,下次可能就慢。感觉总不能每个元素加载前都写一个WebDriverWait()吧。。。。
大家都是咋处理的呀?

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    开心
    2024-7-10 10:58
  • 签到天数: 194 天

    连续签到: 1 天

    [LV.7]测试师长

    2#
    发表于 2018-2-7 17:54:01 | 只看该作者
    隐式等待是对全局都生效的 可以考虑用
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-1-21 09:17
  • 签到天数: 90 天

    连续签到: 1 天

    [LV.6]测试旅长

    3#
    发表于 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秒是自己写的,可以任意定义。

    既然有需求,我会写个关于这个问题的文章。欢迎关注哦。

    评分

    参与人数 1测试积点 +10 收起 理由
    lsekfe + 10 积极回复获得测试积点10 赶快去商城换取奖.

    查看全部评分

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
     楼主| 发表于 2018-2-8 10:32:42 | 只看该作者
    youreyebows 发表于 2018-2-8 09:07
    自己封装一个 getElement方法,里面写上等待元素出现的方法。

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

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

    使用道具 举报

    该用户从未签到

    5#
     楼主| 发表于 2018-2-26 09:55:24 | 只看该作者
    Real_小T 发表于 2018-2-7 17:54
    隐式等待是对全局都生效的 可以考虑用

    多谢,已采用
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-23 03:48 , Processed in 0.067055 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表