05 2018 档案
摘要:前言 做app测试,遇到异常情况,查看日志是必不可少的,日志如何输出到手机sdcard和电脑的目录呢?这就需要用logcat输出日志了 以下操作是基于windows平台的操作:adb logcat | find linux平台的操作可以把find改成grep: adb logcat | grep w
阅读全文
摘要:前言 登录网站的时候,经常会遇到传token参数,token关联并不难,难的是找出服务器第一次返回token的值所在的位置,取出来后就可以动态关联了 登录拉勾网 1.先找到登录首页https://passport.lagou.com/login/login.html,输入账号和密码登录,抓包看详情
阅读全文
摘要:前言 python执行命令行主要有三种方法 os.system 只是简单执行命令行 os.popen 打开一个管道执行 subprocess 推荐此模块,功能更强,可以完全获取到代码执行的完整结果(包含报错的内容) os.system 1.如果想在cmd执行python脚本,可以直接用如下指令 py
阅读全文
摘要:前言 MultiAction是针对多点触控操作的,是TouchAction的一个补充模块 TouchAction用法参考前面的一篇: "appium+python自动化33 TouchAction" 多点触控 多点触摸对象是触摸动作的集合。 多点触控手势只有两种方法,即添加和执行。 add用于添加另
阅读全文
摘要:前言 用手机连电脑的时候,有时候需要把手机(模拟器)上的文件导出到电脑上,或者把电脑的图片导入手机里做测试用,我们可以用第三方的软件管理工具直接复制粘贴,也可以直接通过adb命令导入和导出。 adb shell 1.在导入和导出前先对adb shell基本操作熟悉下,cmd输入adb shell就能
阅读全文
摘要:前言 每次自己写pageobject定位元素对象太繁琐,格式都差不多,只是换个定位方法,这种就可以才有模板的方式,批量生成pageobject定位元素对象的模板 python里面生成模板有两个模块可以选择:templet和mako 简单来说,本篇实现的目的是用代码去自动生成代码,做到代码自动化 接着
阅读全文
摘要:前言 如何高效管理定位元素,这个是很有学问的问题,也是面试必问的 [以下纯属个人观点,勿喷!] 。 有的人用xml管理页面定位元素,这种逼格略高,但是小编认为学习成本大,贼麻烦。 有的人提到用excel管理页面定位元素,这种略显逼格,至少做到了数据分离,但是读取excel太慢,不够高效,还得在exc
阅读全文
摘要:前言 长按操作是经常会遇到的场景,通过driver可以直接调出long_press_keycode方法,但是这个方法是长按手机上某个按钮,比如长按电源键,长按home键。 长按某个元素或者长按屏幕上某个点,就需要用到TouchAction里面提供的long_press操作了 定位ListView 1
阅读全文
摘要:前言 用真机运行appium代码,首次打开app有的手机会出现权限弹窗问题,一般这种弹窗都是在引导页前面或者引导页后面出现。权限弹窗上面的按钮都是固定的, 只需要定位到“始终允许”按钮,点击确定就可以了。还有一个问题是这种弹窗的个数不确定,有的app是2个有的是3个,为了解决这个问题,可以专门写个判
阅读全文
摘要:前言 adb安装 1.在app自动化之前,首先手机上有要被测试的app,如何把电脑本地上的app安装到手机上呢?可以在运行自动化代码前,在cmd输入adb指令,把电脑app安装到手机上 adb install [apk在电脑上的绝对路径] 2.也可以用python执行adb命令安装app,代码实现如
阅读全文
摘要:前言 最新下了个最新版的夜神模拟器,然后adb devices发现连不上模拟器了,报adb server version (36) doesn't match this client (39); killing... 从报错信息看是adb版本不匹配导致的,接下来讲如何解决这个问题 环境: 夜神模拟器
阅读全文
摘要:前言 appium desktop有个客户端版本,每次运行脚本的时候都要去双击启动才能运行,很显然不太方便,影响效率。那么有没什么办法不启动桌面程序就能运行呢,比如cmd命令行执行? 环境: appium 命令行模式版本 1.8 windows环境 npm 1.NPM是随同NodeJS一起安装的包管
阅读全文
摘要:前言 Content-Type类型为octets/stream,这种一般是文件类型了,比如有时候需要导出excel数据,下载excel这种场景如何用python来实现呢? 抓下载接口 1.下载的场景如下图 2.使用fiddler工具抓包,先找到导出按钮,点导出时候抓包 3.抓到数据如下 代码实现 1
阅读全文
摘要:前言 上一篇已经解决切换到微信公众号的webview上了,但是定位webview上元素的时候一直提示找不到,打印page_source也找不到页面上的元素,这个问题困扰了一整天,还好最后找到了原因, 此处埋了一个深坑,需要再次切换handle 切换到webview 1.上一篇已经详细介绍如何切换到微
阅读全文
摘要:前言 本篇介绍如何在微信公众号上自动化测试,以操作我的个人公众号:yoyoketang为例,没关注的,先微信关注了,再跟着操作 环境准备: python 3.6 appium 1.7以上版本 微信6.6.6 微信里面webview 57.0 电脑上chrome版本 66.0 appium chrom
阅读全文
摘要:前言 用appium切换webview的时候报chrome和chromedriver版本的问题:session not created exception: Chrome version must be = 58.0.3029.0 (Driver info: chromedriver=2.30.47
阅读全文
摘要:前言 adb连手机的时候经常会出现offline的情况,一般杀掉adb,然后重启adb可以解决。 如果发现不管怎么重启adb都连不上,一直出现offlie的情况,这个时候很大可能就是adb的5037端口被其它应用占了 offline 1.如果之前一直都能正常连上adb,突然连不上了,可以用adb d
阅读全文
摘要:前言 上一篇提到“adb shell input textyoyo“ 可以通过adb 输入英文的文本,由于不支持unicode编码,所以无法输入中文,github上有个国外的大神写了个ADBKeyBoard输入法的apk,完美支持unicode编码,也能输入中文和其它字符了 ADBKeyBoard
阅读全文
摘要:前言 接着上篇介绍input里面的按键操作keyevent事件,发送手机上常用的一些按键操作 keyevent 1.keyevent事件有一张对应的表,可以直接发送对应的数字,也可以方式字符串,如下两个方法都能实现back键。打开cmd输入指令 2.常用的keyevent事件 解锁(KEYCODE_
阅读全文
摘要:前言 appium有时候定位一个元素很难定位到,或者说明明定位到这个元素了,却无法点击,这个时候该怎么办呢? 求助大神是没用的,点击不了就是点击不了,appium不是万能的,这个时候应该转换思路,换其它的方法去点击,比如我们可以用adb去执行点击事件 input事件 1.先查看input事件语法有哪
阅读全文