在appium自动化测试脚本运行的过程中,因为网络不稳定.测试机或模拟器卡顿等原因,有时候会出现页面元素加载超时元素定位失败的情况,但实际这又不是bug,只是元素加载较慢,这个时候我们就会使用元素等待的方法来避免这种情况,增加代码的健壮性. 一,元素等待方法 1,强制等待 import time # 强制等待5s time.sleep(5) 2,隐式等待 implicitly_wait()是由webdriver提供的隐式等待方法,它不是针对某一个元素,而是针对当前session(即当前drive…
在使用appium做app自动化测试的过程中,可能会遇到元素的属性值不是唯一的情况,导致不能通过find_element_bi_xx()方法定位元素,这个时候我们就可以通过坐标来定位元素. 1,通过绝对坐标定位(不推荐) 在手机(或模拟器)的开发者选项里打开指针位置,任意点的绝对坐标都能获取到,如下A点的坐标为(542, 1362) 2,通过相对坐标定位(推荐) 更换不同分辨的测试机后,之前获取的手机某个位置点的绝对坐标就会改变,这样每次更换测试机都需要更改坐标,显然是不方便代码的维护,所以就需…
滑动屏幕方法swipe一般用于对页面进行上下左右滑动操作,但自动化过程中还会遇到其他情况,如对控件元素进行滑动.拖拽操作,九宫格解锁,手势操作,地图的放大与缩小等.这些需要针对控件元素的滑动操作,或者点至点.元素至元素之间的滑动操作,使用swipe方法显然不是很方便,这时候就可以用到appium里提供TouchAction类和MultiAction类. 一,TouchAction类 1,TouchAction类由webdriver库提供,提供以下方法: tap(self, element=Non…
appium做app自动化测试过程中,有时需要获取控件元素的坐标进行滑动操作.appium中提供了location方法获取控件元素左上角的坐标,再通过size方法获取控件元素的宽高,就可以得到控件元素更多的坐标. 一,获取元素坐标的方法 1,size获取元素的宽.高 ele_size = driver.find_element_by_xx('xx').size # 元素的宽 width = ele_size['width'] # 元素的高 height = ele_size['height']…
对于Android而言,查找appUI界面元素属性的工具有三种:appium desktop,uiautomatorviewer.bat,weditor.之前已经介绍过了weditor的使用,这里我将通过使用uiautomatorview工具查看元素的属性值,来介绍Android app通过appium进行元素定位常用的几种方法. 一,使用uiautomatorview对app页面截图,查看元素属性 连接Android手机 在Android SDK的目录里的tools文件夹中找到uiautoma…
一,前言 在app自动化测试的过程中经常会遇到需要对toast进行定位,最常见的就是定位toast或者获取toast的文案进行断言,如下图,通过定位"登录成功"的toast就可以断言今日头条登录用例是否通过.但toast区别于控件元素,无法获取焦点,不能通过uiautomatorviewer.bat.appium.weditor等工具定位,因此我们就需要通过别的方法来定位. 二,环境 windows 10 Android 10 appium 1.18.0 (desktop) selen…
做APP的UI自动化测试时,我们往往会使用真机跑自动化测试脚本,因为这样才是最真实的使用场景.但前期调试脚本的话,可以先使用模拟器,这样相对更加方便. 不推荐使用Android SDK里自带模拟器,太卡. 这里介绍两款我正在用于做自动化测试的模拟器:Genymotion 与 夜神模拟器. 一,Genymotion 1,注册账号 使用Genymotion时需要登录账号,我们需要去Genymotion官网注册账号. 官网地址:https://www.genymotion.com/ 官网首页点击[Si…
一,前言 在之前的appium自动化测试示例中,我们都是把构造driver实例对象的数据(即Desired Capabilities)写在业务代码里,如下: # -*- coding:utf-8 -*- # @author: 给你一页白纸 from appium import webdriver desired_caps = { "platformName": "Android", "platformVersion": "10"…
用python+appium做appUI自动化测试,系统为Windows.首先是JDK与Android SDK的安装与环境变量的设置. 一,安装JDK,配置JDK环境变量 1,下载jdk jdk8官网下载地址: https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html 选择对应的系统下载,我的电脑是Windows64位所以选择红框标注的安装包下载. 官网下载需要创建登录Oracle账号,下面提供一个网盘下…
app自动化测试过程中,经常会遇到滑动屏幕操作,appium框架的话我们可以使用webdriver提供的swipe()方法来对屏幕页面进行上滑.下滑.左滑.右滑操作. 一,swipe方法介绍 swipe()方法源码如下: swipe()方法的参数说明: start_x:起始横坐标 start_y:起始纵坐标 end_x:结束时横坐标 end_y:结束时纵坐标 duration:滑动持续时间,单位毫秒,默认None(一般设置500-1000毫秒比较合适) duration参数需要注意的是,在移动设…