在使用appium做app自动化测试的过程中,可能会遇到元素的属性值不是唯一的情况,导致不能通过find_element_bi_xx()方法定位元素,这个时候我们就可以通过坐标来定位元素. 1,通过绝对坐标定位(不推荐) 在手机(或模拟器)的开发者选项里打开指针位置,任意点的绝对坐标都能获取到,如下A点的坐标为(542, 1362) 2,通过相对坐标定位(推荐) 更换不同分辨的测试机后,之前获取的手机某个位置点的绝对坐标就会改变,这样每次更换测试机都需要更改坐标,显然是不方便代码的维护,所以就需…
一,weditor的安装与使用 首选需要在电脑上配置好Python环境 下载安装命令如下,加上镜像下载速度更快: pip install weditor -i https://pypi.tuna.tsinghua.edu.cn/simple 启动weditor命令: python -m weditor 此时会打开浏览器新建窗口如下 连接手机.输入adb devices命令,获取手机的设备id 在浏览器editor页面,选择Android,输入手机的设备id,点击Connect按钮.按钮出现绿叶小…
我们获取到的是绝对坐标,如果换一个屏幕分辨率不同的手机那这个坐标自然会发生变化,要实现不同手机均能实现点击同一控件自然要用到相对坐标了,具体方法如下: 1.获取当前空间的绝对坐标(x1,y1),开启指针位置后,通过点击控件位置获取坐标: 2.获取当前手机的屏幕大小(x2,y2),通过driver.get_window_size()['width'],dirver.get_window_size()['height']分辨获取当前手机的x.y坐标; 3.获取测试手机的屏幕大小(x3,y3),获取方…
一,问题 app自动化测试使用Android真机连接电脑时,通常会遇到两种情况: 1.测试机连接电脑会弹窗提示USB选项,选择USB用于"传输文件",有些手机不支持设置默认USB选项,手机重新连接电脑时都需要手动点击选择USB选项: 2.使用adb命令在真机上安装app时,需要手动点击确认安装按钮. 二,思考 每天定时唤醒手机执行自动化测试时,偶尔会遇到真机重新弹窗提示进行USB用于选项的选择,需要选择USB用于传输文件,否则会执行失败.为了能让手机自动选择USB用于传输文件,我们考虑…
在appium自动化测试脚本运行的过程中,因为网络不稳定.测试机或模拟器卡顿等原因,有时候会出现页面元素加载超时元素定位失败的情况,但实际这又不是bug,只是元素加载较慢,这个时候我们就会使用元素等待的方法来避免这种情况,增加代码的健壮性. 一,元素等待方法 1,强制等待 import time # 强制等待5s time.sleep(5) 2,隐式等待 implicitly_wait()是由webdriver提供的隐式等待方法,它不是针对某一个元素,而是针对当前session(即当前drive…
对于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…
#这里的示例是用android来说明的,xpath应该是通用的,resource-id不太清楚,没配过IOS的环境 #环境配置和一些参数的意思不清楚可以看我上一篇python appium笔记(一) (一)说明 主要说明下面2种方式,其实感觉通过xpath,不管selenium还是appium,应该能定位全部元素了. 1.resource-id:定义了resource-id,并且唯一的情况下,可以使用这种方式 2.xpath:任何情况下,都可以用xpath进行定位 (二)查看 #做第四步的时候,…
之前一篇博客已经讲述怎样手动使用appium-desktop启动测试机上的app,但我们实际跑自动化脚本的过程中,是需要用脚本调用appium启动app的,接下来就尝试写Python脚本启动app并登陆app.环境为Windows10 + Python3.7 + appium1.18.0 + Android手机 + 今日头条app + Pycharm 一,连接测试手机,获取测试机及被测APP配置 具体的获取方法请参考APP自动化测试之appium连接真机启动app,配置信息如下: { "plat…
1.定位元素(id.name.class.link.partial link) (1)find_element_by_id() 用百度定位测试,用firebug查看定位元素 ,输入框的id为“kw”,[百度一下]按钮的id为“su”. from selenium import webdriver #导入selenium的webdriver包 driver = webdriver.Firefox() driver.get("https://www.baidu.com") driver.f…