Appium UI 自动化中显式等待和隐式等待的异同?在实际项目中是如何应用的?
相同点都是智能等待,在一定时间范围内不断查找元素,一旦找到立刻结束查找继续执行代码,没找到才会一直找到超时为止
不同点是隐式等待是全局性设置,并且可以随时更改,在更改后对之后的 findxxx 方法生效,对点击、输入、滑动之类的操作不起作用;显式等待仅仅针对单一元素生效,并且不仅仅是针对查找,也可以针对元素的某些属性进行自定义判断;很可能下一个问题就是你在测试过程中常用哪种等待?三种都有,相互结合根据各自不同特点应用不同的场景。
大部分元素出现的时间可以用隐式等待统一设置
特性元素出现时间较长,可以用显式等待针对他进行超时设置
当操作类型必须等待一段时间才能完成时,使用 sleep,比如有数据推送的界面
如果因为间隔较小导致操作失败,必须加 sleep,比如滑动、返回
selenium 处理页面下拉选择框
1、 标准下拉框(Select 标签 option 选项)(如下图)
针对标准下拉框,selenium 提供了处理方法,代码如下:
Select sel =new Select(driver.findElement(By.id(“areaID”))); //定义 select 方法 sel.selectByIndex(1); //根据选项的索引定位 sel.selectByValue(“tianjin”); //根据选项的 value 值定位 sel.selectByVisibleText(“陕西省”); //根据选项的 text 文本值定位
2、 非标准下拉框
处理方法:模拟手工测试时的思路,先点击一次使下拉列表展开,在点击下拉选项
代码如下
第一步:
driver.findElement(By.cssSelector("#divselect>cite")).click(); //定位方法仅供参考
第二步:
driver.findElement(By.linkText(“下拉 select 效果”)).click(); //注意,点击下拉选项前建议增
加 1 秒 sleep
安卓和 ios 的 app 测试有什么区别?
多分辨率测试,Android 端很多种,ios 较少;
手机操作系统,Android 较多,ios 较少且不能降级,只能单向升级;新的 ios 系统中的资源库不能完全兼容低版本中的 ios 系统中的应用,低版本 ios 系统中的应用调用了新的资源
库,会直接导致闪退(Crash);
操作习惯:Android,Back 键是否被重写,测试点击 Back 键后的反馈是否正确;应用数据从内存移动到 SD 卡后能否正常运行等;
push 测试:Android:点击 home 键,程序后台运行时,此时接收到 push,点击后唤醒应用,此时是否可以正确跳转;ios,点击 home 键关闭程序和屏幕锁屏的情况(红点的显示);android 特性测试(横竖屏,home 键,音量键,power 键等)等测试。
安装卸载测试:Android 的下载和安装的平台和工具和渠道比较多,ios 主要有 app store,iTunes 等等下载;
升级测试:可以被升级的必要条件:新旧版本具有相同的签名;新旧版本具有相同的包名;有一个标示符区分新旧版本(如版本号),对于 Android 若有内置的应用需检查升级之后内置文件是否匹配(如内置的输入法);ios 是不允许内置检查升级的
作者:软件测试开发-虚竹
原文链接:https://blog.csdn.net/shuaigezhou10086/article/details/109607195#comments_13859130