前言 mac上搭建appium+python的环境还是有点复杂的,需要准备的软件 1.nodejs 2.npm 3.cnpm 4.appium 5.pip 6.Appium-Python-Client 一.nodejs安装 1.nodejs下载地址:https://nodejs.org/ 2.下载完成后傻瓜式下一步安装…
前言 上一篇已经解决切换到微信公众号的webview上了,但是定位webview上元素的时候一直提示找不到,打印page_source也找不到页面上的元素,这个问题困扰了一整天,还好最后找到了原因, 此处埋了一个深坑,需要再次切换handle 切换到webview 1.上一篇已经详细介绍如何切换到微信公众号的webview上,这里就不重复说了,贴下代码: # 切换到webview time.sleep(2) print(driver.contexts) driver.switch_to.cont…
本篇转自博客:上海-悠悠 前言在启动app的时候,如果直接做下一步点击操作,经常会报错,于是我们会在启动完成的时候加sleep.那么问题来了,这个sleep时间到底设置多少合适呢?设置长了,就浪费时间,设置短了,就会找不到元素报错了.这个时候我们可以用wait_activity的语法,等到你想点击的页面activity出现了,再点击,可以有效的节省时间. 一.wait_activity 1.查看源码 ```def wait_activity(self, activity, timeout, in…
前言 环境搭建好了,下一步元素定位,元素定位本篇主要介绍如何使用uiautomatorviewer,通过定位到页面上的元素,然后进行相应的点击等操作. uiautomatorviewer是android-sdk自带的一个元素定位工具,非常简单好用,使用uiautomatorviewer,你可以检查一个应用的UI来查看应用的布局和组件以及相关的属性. 一.启动uiautomatorviewer.bat 1.打开目录D:\androidsdk\android-sdk-windows\tools 14…
Appium+python自动化8-AppiumPython API   前言: Appium Python API全集,不知道哪个大神整理的,这里贴出来分享给大家. 1.contexts contexts(self): Returns the contexts within the current session. 返回当前会话中的上下文,使用后可以识别H5页面的控件 :Usage: driver.contexts 用法 driver.contexts 2. current_context c…
名称 链接地址 Appium+python自动化8-Appium Python API(上) http://mp.weixin.qq.com/s/WvpT5oRrYY22avI95FuypQ Appium+python自动化8-Appium Python API(下) http://mp.weixin.qq.com/s/rGWWf9m9-6n-J7KaGVlqoA Appium+python自动化9-SDK Manager http://mp.weixin.qq.com/s/wGyfXAwJ9M…
前言 在夜神模拟器上输入中文,发现是乱码,将unicodeKeyboard和resetKeyboard参数设置为True了,发现还是没法解决. 打开手机设置语言和输入法,发现找不到Appium Android Input Manager for Unicode输入法导致的 相关环境: appium1.8.1 python3.6 手机使用夜神模拟器 遇到问题 加上unicodeKeyboard和resetKeyboard参数后,运行如下代码 # coding=utf-8 from appium i…
前言 MultiAction是针对多点触控操作的,是TouchAction的一个补充模块 TouchAction用法参考前面的一篇:appium+python自动化33-TouchAction 多点触控 多点触摸对象是触摸动作的集合. 多点触控手势只有两种方法,即添加和执行. add用于添加另一个触摸操作到多点触摸. 当perform执行被调用时,添加到多点触摸的所有触摸动作都被发送到AppII,并执行,就像它们同时发生一样.appium首先执行所有触摸动作的第一个事件,然后执行第二个,等等.…
前言 学UI自动化首先就是定位页面元素,玩过android版的appium小伙伴应该都知道,appium的windows版自带的Inspector可以定位app上的元素 Mac版的appium1.6的版本在UI上有了很大的改变,本篇详细解决如何使用appium1.6定位iOS的app页面元素. 一.Start New Session 1.启动appium后点Start New Session 2.打开后看到如下界面,刚开始看到这个界面,我也比较懵. 二.Desired Capabilities…
前言 做过iOS上app测试的小伙伴应该都知道,普通用户安装app都是从appstore下载安装,安装测试版本的app,一般就是开发给的二维码扫码安装, 或者开发给个.ipa的安装包文件,通过itools安装.对于没有iPhone真机的小伙伴,想在iOS模拟器上安装app测试可不是那么容易的事情. 一.启动iOS Simulator 1.Xcode>Open Developer Tool>iOS Simulator,打开后在hardware里面选对应的iPhone版本就能启动模拟器了…
前言 每次自己写pageobject定位元素对象太繁琐,格式都差不多,只是换个定位方法,这种就可以才有模板的方式,批量生成pageobject定位元素对象的模板 python里面生成模板有两个模块可以选择:templet和mako 简单来说,本篇实现的目的是用代码去自动生成代码,做到代码自动化 接着上一篇讲:appium+python自动化49-yaml管理定位元素 jinja2简介 1.jinja2官方文档:官方文档 jinja2是Flask作者开发的一个模板系统,起初是仿django模板的一…
前言 学UI自动化首先就是定位页面元素,玩过android版的appium小伙伴应该都知道,appium的windows版自带的Inspector可以定位app上的元素Mac版的appium1.6的版本在UI上有了很大的改变,本篇详细解决如何使用appium1.6定位iOS的app页面元素. 一.Start New Session 1.启动appium后点Start New Session 2.打开后看到如下界面,刚开始看到这个界面,我也比较懵. 二.Desired Capabilities 1…
前言 做过iOS上app测试的小伙伴应该都知道,普通用户安装app都是从appstore下载安装,安装测试版本的app,一般就是开发给的二维码扫码安装, 或者开发给个.ipa的安装包文件,通过itools安装.对于没有iPhone真机的小伙伴,想在iOS模拟器上安装app测试可不是那么容易的事情. 一.启动iOS Simulator 1.Xcode>Open Developer Tool>iOS Simulator,打开后在hardware里面选对应的iPhone版本就能启动模拟器了…
本文转自:https://www.cnblogs.com/yoyoketang/p/7581831.html 前言 学UI自动化首先就是定位页面元素,玩过android版的appium小伙伴应该都知道,appium的windows版自带的Inspector可以定位app上的元素Mac版的appium1.6的版本在UI上有了很大的改变,本篇详细解决如何使用appium1.6定位iOS的app页面元素. 一.Start New Session 1.启动appium后点Start New Sessio…
前言 现在大部分app都是混合式的native+webview,对应native上的元素通过uiautomatorviewer很容易定位到,webview上的元素就无法识别了. 一.识别webview 1.用定位工具查看页面,发现页面上有些区域无法定位到,如下图左边红色区域,只能定位到这个大框框,红色框里面的元素是无法识别的. 2.这时候可以查看元素属性,如右图它的class属性,上面写着WebView,那毫无疑问这种页面就是webview了. 二.contexts 1.context是中文翻译…
前言 本篇介绍如何在微信公众号上自动化测试,以操作我的个人公众号:yoyoketang为例,没关注的,先微信关注了,再跟着操作 环境准备:python 3.6appium 1.7以上版本微信6.6.6微信里面webview 57.0电脑上chrome版本 66.0appium-chromedriver路径下chromedriver 2.28 开启微信debug模式 1.以微信为例,webview的版本号可以用chrome浏览器查看到,由于微信用的是x5内核,跟其他app不太一样,这里需要先开启微…
前言 现在大部分app都是混合式的native+webview,对应native上的元素通过uiautomatorviewer很容易定位到,webview上的元素就无法识别了. 一.识别webview 1.用定位工具查看页面,发现页面上有些区域无法定位到,如下图左边红色区域,只能定位到这个大框框,红色框里面的元素是无法识别的. 2.这时候可以查看元素属性,如右图它的class属性,上面写着WebView,那毫无疑问这种页面就是webview了. 二.contexts 1.context是中文翻译…
前言 上一篇已经解决切换到微信公众号的webview上了,但是定位webview上元素的时候一直提示找不到,打印page_source也找不到页面上的元素,这个问题困扰了一整天,还好最后找到了原因, 此处埋了一个深坑,需要再次切换handle 切换到webview 1.上一篇已经详细介绍如何切换到微信公众号的webview上,这里就不重复说了,贴下代码: # 切换到webview time.sleep(2) print(driver.contexts) driver.switch_to.cont…
前言 用appium切换webview的时候报chrome和chromedriver版本的问题:session not created exception: Chrome version must be >= 58.0.3029.0 (Driver info: chromedriver=2.30.477700 ) 运行环境: android 7.0 appium 1.7.1 appium里面chromedriver 2.28 webview版本 57.0 遇到问题 1.当执行switch_to.…
前言 app上webview的页面实际上是启用的chrome浏览器的内核加载的,如何把手机的网页加载到电脑上,电脑的chrome浏览器上有个开发模式DevTools,是可以方便调试的. 一.环境准备 1.手机上装一个chrome浏览器 2.电脑上装chrome浏览器 3.手机连电脑 二.启动adb服务 1.电脑上打开chrome浏览器输入:chrome://inspect/#devices 2.要是没加载到手机设备,就先启动adb服务,cmd输入: >adb devices 二.DevTools…
前言 appium可以说是做app最火的一个自动化框架,它的主要优势是支持android和ios,另外脚本语言也是支持java和Python.小编擅长Python,所以接下来的教程是appium+python的实例. 学习appium最大的难处在于环境的安装,80%的人死于环境安装,然后就没然后了,10%的人被环境折腾一周以上,只有剩下的10%人品好,可以顺利安装. 一.环境准备 小编的环境是Windows 7版本 64位系统(32位的同学自己想办法哦) 1.jdk1.6.0 (64位) 2.a…
前言 本篇介绍如何在微信公众号上自动化测试,以操作我的个人公众号:yoyoketang为例,没关注的,先微信关注了,再跟着操作 环境准备: python 3.6 appium 1.7以上版本 微信6.6.6 微信里面webview 57.0 电脑上chrome版本 66.0 appium-chromedriver路径下chromedriver 2.28 开启微信debug模式 1.以微信为例,webview的版本号可以用chrome浏览器查看到,由于微信用的是x5内核,跟其他app不太一样,这里…
前言 由于app的webview自动化是依赖于chromedriver的,并且每个app的webview版本号都不太一样,这就导致了,每次都需要重新去下载对应的chromedriver版本.如何根据当前的webdriver版本去匹配对应chromedriver版本,这是一个难题.可以看下如下官方文档,本篇是根据官方文档翻译过来的. 版本不匹配的话一般会报错:An unknown server-side error occurred while processing the command. Or…
Appium Desired Capabilities Desired Capabilities 是由 keys 和 values 组成的 JSON 对象. 举个简单例子: { "platformName": "iOS", "platformVersion": "11.0", "deviceName": "iPhone 7", "automationName": &q…
前言: Appium Python API全集,不知道哪个大神整理的,这里贴出来分享给大家. 1.contexts contexts(self): Returns the contexts within the current session. 返回当前会话中的上下文,使用后可以识别H5页面的控件 :Usage: driver.contexts 用法 driver.contexts 2. current_context current_context(self): Returns the cur…
前言 appium可以说是做app最火的一个自动化框架,它的主要优势是支持android和ios,另外脚本语言也是支持java和Python.小编擅长Python,所以接下来的教程是appium+python的实例. 学习appium最大的难处在于环境的安装,80%的人死于环境安装,然后就没然后了,10%的人被环境折腾一周以上,只有剩下的10%人品好,可以顺利安装. 一.环境准备 小编的环境是Windows 7版本 64位系统(32位的同学自己想办法哦) 1.jdk1.6.0 (64位) 2.a…
前言 appium可以说是做app最火的一个自动化框架,它的主要优势是支持android和ios,另外脚本语言也是支持java和Python. 小编擅长Python,所以接下来的教程是appium+python的实例. 学习appium最大的难处在于环境的安装,从入门到真正的放弃,然后就没然后了,10%的人被环境折腾一周以上,只有剩下的10%人品好,可以顺利安装. 一.环境准备 小编的环境是Windows 7版本 64位系统(32位的同学自己想办法哦) 1.jdk1.8.0 (64位) 2.an…
native和webview 标签(空格分隔): native和webview 现在目前大部分的app都是native和webview混合,对应的native上的元素可以通过uiautomatorviewer很容易定位到,webview上的元素就无法识别了, 一.识别webview 1.用定位工具查看页面,发现页面上有些区域无法定位到: 2.在使用定位工具的时候,发现页面上有些区域无法定位到,如下图左边红色区域,只能定位到这个大框框,红色框里面的元素无法识别: 3.如上图的class属性,上边写…
一.前言 appium可以说是做app最火的一个自动化框架,它的主要优势是支持android和ios,另外脚本语言也是支持java和Python.小编擅长Python,所以接下来的教程是appium+python的实例. 学习appium最大的难处在于环境的安装,80%的人死于环境安装,然后就没然后了,10%的人被环境折腾一周以上,只有剩下的10%人品好,可以顺利安装.小编属于人品好的,一次安装成功 二.环境准备 小编的环境是Windows 7版本 64位系统 1.Node.js:   node…
前言 接着上篇介绍input里面的按键操作keyevent事件,发送手机上常用的一些按键操作 keyevent 1.keyevent事件有一张对应的表,可以直接发送对应的数字,也可以方式字符串,如下两个方法都能实现back键.打开cmd输入指令 # 方法一: > adb shell input keyevent KEYCODE_BACK # 方法二: > adb shell input keyevent 4 2.常用的keyevent事件 解锁(KEYCODE_NOTIFICATION): a…