
appium
蜀山客e
这个作者很懒,什么都没留下…
展开
-
用python爬取抖音app视频
编程工具:pycharmapp抓包工具:mitmproxyapp自动化工具:appium运行环境:windows10思路:假设已经配置好我们所需要的工具1、使用mitmproxy对手机app抓包获取我们想要的内容2、利用appium自动化测试工具,驱动app模拟人的动作(滑动、点击等)3、将1和2相结合达到自动化爬虫的效果一、mitmproxy/mitmdump抓包确保已经安装好了mitmproxy,并且手机和PC处于同一个局域网下,同时也配置好了mitmproxy的CA证书,网上有很多原创 2020-12-02 14:21:00 · 1211 阅读 · 0 评论 -
appium无ID、name定位处理
关于没有name,没有ID的元素的定位—通用篇解题思路:因为没有name,id;其实剩下的选择已不多,要么xpath,要么className。xpath木有好印象(稳定性不高,加之1.0x后需要写全路径,相当崩溃),我决定十分个人色彩的建议使用className。具体方法:用className获取所有该类型的元素;根据元素的位置确定元素的index;获取目标元素。示例:List<WebElement> lis = driver.findElementsByClassName("A原创 2020-11-25 17:24:49 · 1285 阅读 · 0 评论 -
appium如何获取conten-desc内容文本
如何获取conten-desc内容文本定位到该元素,通过getAttribute(“name”);来获取内容如:媒体报道总结:思路和selenium一样,可以理解为获取它的value值,只不过是括号写的name希望本文对你有所帮助~~如果对软件测试、接口测试、自动化测试、面试经验交流感兴趣可以加入我们。642830685,免费领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!技术大牛解惑答疑,同行一起交流。...原创 2020-11-23 16:21:25 · 684 阅读 · 0 评论 -
app自动化 - 元素定位不到?别慌,看完你就能解决
在日常的android app自动化测试工作当中,很多朋友在元素定位时,会遇到以下类似的报错:然后会来问,这是啥情况?一般情况下,都会送上以下亲切的关怀:1)adb能识别到设备吗?2)设备有被其它的程序在占用吗?3)ADT的版本正确吗?当朋友们对以上关怀都确认之后,反馈仍然会遇到这样的报错。那么为了不影响学习的热情,会提供以下三种定位工具,总有一款可以让你顺利的定位到元素哦!!每一种工具定位的前提:1、通过 adb devices命令能够识别到至少一个android设备;2、设备当前没有原创 2020-11-10 14:42:44 · 3012 阅读 · 2 评论 -
多设备并发 -appium+pytest+ 多线程
1、appium+python 实现单设备的 app 自动化测试启动 appium server,占用端口 4723电脑与一个设备连接,通过 adb devices 获取已连接的设备在 python 代码当中,编写启动参数,通过 pytest 编写测试用例,来进行自动化测试。2、若要多设备并发,同时执行自动化测试,那么需要:确定设备个数每个设备对应一个 appium server 的端口号,并启动 appiumpytest 要获取到每个设备的启动参数,然后执行自动化测试。3、实现策原创 2020-11-07 15:52:08 · 1092 阅读 · 1 评论 -
APP UI自动化测试思路总结
首先想要说明一下,APP自动化测试可能很多公司不用,但也是大部分自动化测试工程师、高级测试工程师岗位招聘信息上要求的,所以为了更好的待遇,我们还是需要花时间去掌握的,毕竟谁也不会跟钱过不去。接下来,一起总结一下APP UI自动化测试的思路吧。一,开发语言选择通常用于自动化测试的编程语言有:Python、Java、Javascript、Ruby、C#、PHP等。一般我们会选择自己熟悉的编程语言来编写自动化脚本,但对于编程基础基本为0的童鞋(或者专注于做自动化测试的童鞋),推荐学习使用Python。相对原创 2020-11-02 14:00:39 · 1547 阅读 · 0 评论 -
Python+Appium自动化测试-使用Android模拟器(详细)
做APP的UI自动化测试时,我们往往会使用真机跑自动化测试脚本,因为这样才是最真实的使用场景。但前期调试脚本的话,可以先使用模拟器,这样相对更加方便。不推荐使用Android SDK里自带模拟器,太卡。这里介绍两款我正在用于做自动化测试的模拟器:Genymotion 与 夜神模拟器。一,Genymotion1,注册账号使用Genymotion时需要登录账号,我们需要去Genymotion官网注册账号。官网地址:https://www.genymotion.com/官网首页点击【Sign In】原创 2020-10-31 14:00:38 · 2398 阅读 · 1 评论 -
Python+Appium自动化测试-yaml配置Desired capabilities
一,前言在之前的appium自动化测试示例中,我们都是把构造driver实例对象的数据(即Desired Capabilities)写在业务代码里,如下:from appium import webdriverdesired_caps = { "platformName": "Android", "platformVersion": "10", "deviceName": "PCT_AL10", "appPackage": "com.ss.android.articl原创 2020-10-31 13:43:18 · 690 阅读 · 0 评论 -
Python+Appium自动化测试-toast定位
一,前言在app自动化测试的过程中经常会遇到需要对toast进行定位,最常见的就是定位toast或者获取toast的文案进行断言,如下图,通过定位"登录成功"的toast就可以断言今日头条登录用例是否通过。但toast区别于控件元素,无法获取焦点,不能通过uiautomatorviewer.bat、appium、weditor等工具定位,因此我们就需要通过别的方法来定位。二,环境windows 10Android 10appium 1.18.0 (desktop)selenium 3.141.原创 2020-10-31 13:21:12 · 963 阅读 · 1 评论 -
Python+Appium自动化测试-通过坐标定位元素
在使用appium做app自动化测试的过程中,可能会遇到元素的属性值不是唯一的情况,导致不能通过find_element_bi_xx()方法定位元素,这个时候我们就可以通过坐标来定位元素。1,通过绝对坐标定位(不推荐)在手机(或模拟器)的开发者选项里打开指针位置,任意点的绝对坐标都能获取到,如下A点的坐标为(542, 1362)2,通过相对坐标定位(推荐)更换不同分辨的测试机后,之前获取的手机某个位置点的绝对坐标就会改变,这样每次更换测试机都需要更改坐标,显然是不方便代码的维护,所以就需要获取相对原创 2020-10-31 13:02:29 · 2789 阅读 · 0 评论 -
Python+Appium自动化测试-location与size获取元素坐标
appium做app自动化测试过程中,有时需要获取控件元素的坐标进行滑动操作。appium中提供了location方法获取控件元素左上角的坐标,再通过size方法获取控件元素的宽高,就可以得到控件元素更多的坐标。一,获取元素坐标的方法1,size获取元素的宽、高ele_size = driver.find_element_by_xx('xx').size# 元素的宽width = ele_size['width']# 元素的高height = ele_size['height']2,loc原创 2020-10-30 14:00:24 · 1709 阅读 · 0 评论 -
Python+Appium自动化测试(10)-TouchAction类与MultiAction类(控件元素的滑动、拖动,九宫格解锁,手势操作)
滑动屏幕方法swipe一般用于对页面进行上下左右滑动操作,但自动化过程中还会遇到其他情况,如对控件元素进行滑动、拖拽操作,九宫格解锁,手势操作,地图的放大与缩小等。这些需要针对控件元素的滑动操作,或者点至点、元素至元素之间的滑动操作,使用swipe方法显然不是很方便,这时候就可以用到appium里提供TouchAction类和MultiAction类。一,TouchAction类1,TouchAction类由webdriver库提供,提供以下方法:tap(self, element=None, x原创 2020-10-30 13:53:11 · 1698 阅读 · 1 评论 -
Python+Appium自动化测试-自动选择USB用于传输文件(不依赖appium对手机页面元素进行定位)
一,问题app自动化测试使用Android真机连接电脑时,通常会遇到两种情况:1、测试机连接电脑会弹窗提示USB选项,选择USB用于"传输文件",有些手机不支持设置默认USB选项,手机重新连接电脑时都需要手动点击选择USB选项;2、使用adb命令在真机上安装app时,需要手动点击确认安装按钮。二,思考每天定时唤醒手机执行自动化测试时,偶尔会遇到真机重新弹窗提示进行USB用于选项的选择,需要选择USB用于传输文件,否则会执行失败。为了能让手机自动选择USB用于传输文件,我们考虑以下解决方法:1,原创 2020-10-30 13:38:59 · 1051 阅读 · 1 评论 -
使用appium后安卓手机无法调出键盘解决方法
问题:用appium进行真机调试后,使用手机的app进行输入时无法调出键盘。原因:appium调试时,将手机输入法设置成了Unicode IME解决方法:方法一,手机设置里修改输入法:不同的手机型号、系统设置的步骤可能不同,以华为Magic3.1.0为例,设置–>系统和更新–>语言和输入法–>默认–>搜狗输入法方法二,adb命令切换手机输入法:首先,获取手机当前可用输入法,命令:adb shell ime list -s然后,切换成其他输入法,以搜狗输入法为例,命令原创 2020-10-30 13:35:22 · 1568 阅读 · 0 评论 -
Python+Appium自动化测试-使用weditor进行元素定位
一,weditor的安装与使用首选需要在电脑上配置好Python环境下载安装命令如下,加上镜像下载速度更快:pip install weditor -i https://pypi.tuna.tsinghua.edu.cn/simple启动weditor命令:python -m weditor此时会打开浏览器新建窗口如下连接手机。输入adb devices命令,获取手机的设备id在浏览器editor页面,选择Android,输入手机的设备id,点击Connect按钮。按钮原创 2020-10-29 13:19:25 · 1244 阅读 · 1 评论 -
Python+Appium自动化测试-编写自动化脚本
我们实际跑自动化脚本的过程中,是需要用脚本调用appium启动app的,接下来就尝试写Python脚本启动app并登陆app。环境为Windows10 + Python3.7 + appium1.18.0 + Android手机 + 今日头条app + Pycharm一,连接测试手机,获取测试机及被测APP配置具体的获取方法请参考APP自动化测试之appium连接真机启动app,配置信息如下:{ "platformName": "Android", "platformVersion": "10原创 2020-10-28 15:01:06 · 6335 阅读 · 3 评论 -
Python+Appium自动化测试-appium连接真机启动app
app自动化测试的第一步,是启动被测app。appium环境搭建好后,我们就可以连接真机启动app了。环境为windows,Appium1.18.0,Android手机,被测app为今日头条app,让我们开始吧。一,连接手机(测试机)通过USB线连接Android手机和电脑,打开手机的开发者模式,开启USB调试模式(方法自行百度)。打开cmd输入命令adb devices,显示连接手机的udid即为连接成功。输入adb devices后如果List of devices attached下原创 2020-10-28 14:53:05 · 8257 阅读 · 4 评论 -
Python+Appium自动化测试-appium环境搭建
用python+appium做appUI自动化测试,系统为Windows。首先是JDK与Android SDK的安装与环境变量的设置。一,安装JDK,配置JDK环境变量1,下载jdk选择对应的系统下载2,安装jdk安装过程傻瓜式默认安装,也可以更改安装路径。安装完成后jdk安装绝对路径里包括以下文件3,配置jdk环境变量3.1,win10下配置步骤:选择桌面 ”此电脑“,鼠标右键–>点击”属性“ --> 点击“高级系统设置” --> 点击“环境变量”3.2,进入如下原创 2020-10-28 14:41:57 · 1636 阅读 · 1 评论 -
appium自动化框架综合实践
结合前面的元素寻找、操作、unittest测试框架,搭建一个完整的自动化框架。本篇旨在框架设计、单机用例执行、输出报告,下篇继续实践Bat批处理执行测试、多设备并发测试。框架功能数据配置日志输出截图处理基础功能封装(公共方法,查找元素)业务功能数据驱动测试用例封装断言处理和报告输出测试需求测试环境win10appium 1.17.1weixin真机测试用例登录场景1.用户名 xxx 密码 xxx (登录成功)登录场景2.用户原创 2020-10-23 13:48:53 · 289 阅读 · 0 评论 -
appium+python 获取toast弹窗信息
以微信登录界面的toast弹窗为例:我的appium版本是1.17.1,服务器运行时日志有这样的打印信息所以我的desired_caps如下(如果是之前的版本,需要安装uiautomator2,并且在初始化时指定automationName为uiautomator2):desired_caps_a = {'platformName': "Android", 'platFormVersion': "10", 'd.原创 2020-10-22 14:38:04 · 1586 阅读 · 0 评论 -
appium自动化测试日志收集-logging
# user/bin/env python# -*- coding:utf-8 -*-# __author__ = "Cc"import loggingimport timedef output_log(log_level): """ 输出日志 :log_level:设置日志级别 :return:返回日志操作对象 """ my_logging = logging.getLogger(__name__) # 创建一个命名为模块名的logger对原创 2020-10-22 14:01:12 · 543 阅读 · 0 评论 -
appium自动化测试之H5页面测试
测试环境准备1.PC端安装chrome,手机端安装谷歌浏览器(部分品牌应用商店可能会没有,可以安装应用宝,再到应用宝上安装google浏览器,或者PC端应用宝内下载。不太清楚这个有什么用途,我不按安装也是可以运行的。)2.打开webview调试模式3.浏览器输入 chrome://inspect/devices#devices,可以看到当前webview页面,如果获取不到可以刷新下,或者调试模式未打开代码准备desired_caps_a = {'platformName': "Android",原创 2020-10-22 14:05:14 · 1779 阅读 · 0 评论 -
appium自动化之模拟点击、滑动等用户行为
1.点击快速点击click(self) 调用对象需是UiObject eg. driver.find_element_by_xx.click()单指或多指点击,长按tap(self,[(x0,y0),…],duration=None) 最多可模拟五个手指同时点击,duration单位ms2.滑动swipeswipe(self,x0,y0,x1,y1,duration=None) 传入滑动的起点坐标和终点坐标,可设置滑动的时长,单位ms快速滑动flick(self,x0,y0,x1,y1原创 2020-10-20 13:59:26 · 1843 阅读 · 0 评论 -
appium实现九宫格滑动和双指缩放操作--TouchAction/MultiAction
1.TouchActiona.from appium.webDriver.common.touch_action import TouchActionb.获取一个对象 TouchAction(driver)c.press(self,el=None,x=None,y=None,pressure=None) 按压传入元素或者坐标,pressure ios onlyd.longPress(self,el=None,x=None,y=None,duration=1000) 长按x mse.tap(self原创 2020-10-17 15:08:23 · 967 阅读 · 0 评论