自动化测试注意点

3 篇文章 0 订阅

1、web自动化selenium测试的过程中,浏览器和driver的匹配至关重要。
    如果在浏览器启动时就报一些看不懂的异常,多半是driver和浏览器版本不匹配,这时,先确认和更换driver版本。

2、访问的页面过慢怎么办?
    因为driver打开的浏览器不会使用自己本地的用户设置和缓存。
    解决方案:让driver调用自己的本地用户文件。
            1、找到自己的用户文件存放位置:通过在浏览器地址栏输入chrome://version/进行查看
            2、在代码中通过options添加
            3、在启动chromedriver时,带上options设置。
        注意:使用用户文件时,记得关闭已经打开的chrome浏览器,否则文件会冲突。


3、web自动化最核心的操作:元素定位
    定位的进阶方法:手写xpath。
        //a[text()='笔记本']
        //表示从html文档中的任意层级开始进行查找
        a是元素的名称(类型)
        [属性='属性值']
        1、针对于元素标签之间的文本内容,属性是[text()='文本内容']
        2、针对于元素开始标签中的属性,属性写法是:[@属性='属性值']

    通过按下F12或者在元素上右键选择检查元素打开开发者工具,使用chrome开发者工具两个定位验证辅助功能,确认元素表达式绝对正确,减少代码出错时排查的错误选项:
        1、ctrl+f 打开搜索栏,在搜索栏中逐步输入自己的手写表达式,帮助完成编写
        2、console控制台中的$x("xpath表达式")方法,验证表达式是否能够正确定位以及元素是否能够响应你想要的操作。

4、element not interactable 以及 nosuch element报错是大家在web自动化过程当中经常会碰到的异常。
    解决方案:
        笔记本元素无法点击的原因:元素需要前置将鼠标移动到电脑配件。

    nosuch element:
        1、当出现新窗口时,需要指定selenium进行跳转:
        selenium当中通过句柄来唯一确定一个窗口:
        Set<String> handleSet= driver.getWindowHandles();
            System.out.println(handleSet);
            //用一个变量来记录目标句柄
            String targetHandle="";
            //循环遍历当前的句柄,找出谁是我想要的句柄
        for(String handle:handleSet) {
            //切换到句柄对应的窗口并且获取它的标题
            String title= driver.switchTo().window(handle).getTitle();
            //判断一下当前窗口标题是否是我想要的
            if(title.equals("商品列表")) {
                targetHandle=handle;
            }
        }
        //切换到我想要的句柄
        driver.switchTo().window(targetHandle);

        2、页面中存在iframe时,需要进行切换。
            iframe切换时使用driver.switchTo().frame(arg0)
            可以用iframe的id或者name属性,iframe元素本身。

5、在运行过程中为了避免由于脚本执行过快,浏览器刷新跟不上的情况,加上等待条件。
    最好的方案:直接加上隐式等待,全局设置在定位元素时,等待元素加载完成,只需要加一次。
    推荐在浏览器drvier实例化完成之后立即加上,在整个浏览器操作过程中全局生效.
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);


6、如果需要对页面进行js调试,或者在代码中执行js脚本,那么,首先在开发者工具console当中验证
    比如:window.scrollto进行浏览器滚动条滑动
    然后在脚本中执行js语句。


7、如果需要在脚本执行过程中等待某个特定事件的发生,可以使用显式等待来指定事件和等待时间。一般来说用一个隐式等待能够完成需求。
 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值