51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1685|回复: 5
打印 上一主题 下一主题

求助,如何解决自动化脚本的稳定性问题?

[复制链接]
  • TA的每日心情
    慵懒
    2017-7-25 15:33
  • 签到天数: 12 天

    连续签到: 1 天

    [LV.3]测试连长

    跳转到指定楼层
    1#
    发表于 2017-4-25 14:51:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    我用的是selenium+java搭的框架,在脚本运行时总会时不时出错,主要是找不到元素、元素不可点击和执行错误的请求,研究了一下一般是由于网络原因或者是服务器响应慢导致的,具体表现为一步操作执行完之后,在页面还没有完全加载好时脚本就开始执行下一步 的操作了。在定位元素时我已经加了两种等待了,还是会经常出这种问题,希望大神给点意见,我的定位元素的封装代码如下(定位方式与定位路径已经用键值方式封装起来了):
    public WebElement Find_Element(final String key){
        final String type=yamlUtils.getKeyMap().get(key).get("type");
        final String value=yamlUtils.getKeyMap().get(key).get("value");
        try {
            WebElement element=(new WebDriverWait(dr,15)).until(
                    new ExpectedCondition<WebElement>(){
                        public WebElement apply(WebDriver d){
                            return dr.findElement(yamlUtils.GetBy(type,value));
                        }
                    }
            );
            WebDriverWait wait =new WebDriverWait(dr,10);
           wait.until(ExpectedConditions.elementToBeClickable(dr.findElement(yamlUtils.GetBy(type,value))));
            report.log("通过定位方式By."+type+"定位到元素"+value);
            return element;
        }
        catch (Exception e){
            e.printStackTrace();
            report.error("无法通过定位方式By."+type+"定位到元素"+value);
            ScreenPhotoShot();
            return null;
        }
    }

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

    使用道具 举报

  • TA的每日心情
    奋斗
    4 小时前
  • 签到天数: 2818 天

    连续签到: 6 天

    [LV.Master]测试大本营

    2#
    发表于 2017-4-25 16:01:49 | 只看该作者
    一般是等待页面元素加载后在执行脚本吧,看大家的经验是对页面是否加载完全做校验之后再执行后面的脚本

    评分

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

    查看全部评分

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2017-7-25 15:33
  • 签到天数: 12 天

    连续签到: 1 天

    [LV.3]测试连长

    3#
     楼主| 发表于 2017-4-25 16:32:39 | 只看该作者
    我封装完之后的效果就是每次定位元素前都会进行等待,要实现你那种说法的话,页面加载的校验要放在哪里?具体的代码是什么可以麻烦告诉我一下么?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2017-7-25 15:33
  • 签到天数: 12 天

    连续签到: 1 天

    [LV.3]测试连长

    4#
     楼主| 发表于 2017-4-25 16:33:42 | 只看该作者
    jingzizx 发表于 2017-4-25 16:01
    一般是等待页面元素加载后在执行脚本吧,看大家的经验是对页面是否加载完全做校验之后再执行后面的脚本

    我封装完之后的效果就是每次定位元素前都会进行等待,要实现你那种说法的话,页面加载的校验要放在哪里?具体的代码是什么可以麻烦告诉我一下么?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2017-5-3 10:54:55 | 只看该作者
    默认时间太短了吧
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2017-7-25 15:33
  • 签到天数: 12 天

    连续签到: 1 天

    [LV.3]测试连长

    6#
     楼主| 发表于 2017-5-17 15:34:20 | 只看该作者
    Q661823 发表于 2017-5-3 10:54
    默认时间太短了吧

    15秒还短么
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-23 12:08 , Processed in 0.069884 second(s), 25 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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