Appium+Python+Android系列
饿极老人●冯人打
逆天逆空气,创天创世纪!!!
展开
-
关于Selenium.common.exceptions.WebDriverException: Message: Invalid locator strategy: css selector 的问题
在执行脚本时报Selenium.common.exceptions.WebDriverException: Message: Invalid locator strategy: css selector 的错出现这个问题时请先检查你的selenium版本是否和Appium-Python-Client的版本互相兼容如果你的selenium是3.4的版本,需要下载Appium-Python-Client 2.8的版本如果selenium是2.53.6的请一定要下载Appium-Python-C...原创 2021-01-12 17:08:43 · 468 阅读 · 0 评论 -
安卓原生控件定位工具weditor
原创 2021-01-05 22:05:31 · 358 阅读 · 0 评论 -
appium报错集锦
1、Failure [INSTALL_FAILED_ALREADY_EXISTS: Attempt to re-install io.appium.settings without first uninstalling.的解决办法解决的问题:appium在androidV7.0系统上运行时报错Failure [INSTALL_FAILED_ALREADY_EXISTS: Attempt to re-install io.appium.settings without first uninstallin.原创 2020-11-18 11:26:33 · 270 阅读 · 0 评论 -
pycharm, unittest中addTest方法不起作用,unittest模式转换成普通模式
unittest中,想让测试用例按顺序执行,要用到TestSuite类的addTest()方法from selenium import webdriverimport unittestclass BaiduTest(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() ...原创 2020-03-10 17:12:15 · 714 阅读 · 1 评论 -
aapt 命令查看apk包名、主activity、版本等信息
在做APP自动话的时候,获取apk的包名、activity信息是最基础的,问开发虽然是最快最简单的方式,但是这样就显得测试不是很专业了网上找资料找半天,各种方式的都有,听他们的不如自己实践的自在,所以记录一下最简单的一种方式,跟现在手机获取root权限有点难,所以在这种情况下,想要知道apk的包名、activity等信息也就有点困难了;以下是通过aapt命令的方式获取包名再次之前需...原创 2020-03-10 11:30:38 · 246 阅读 · 0 评论 -
Appium基础篇16-appium截图方法
这篇介绍一个截图方法,在自动化测试过程中,出现问题,自动截图是很有必要的。在appium中同样有好几种截图方法(其实就是selenium方法)。我们这里介绍一个常用截图方法,该方法叫get_screenshot_as_file,这个方法需要指定保存路径和文件后缀名称,例如我们需要保存当前自动化测试项目的文件夹screenshots下,图片是png格式。来看看我们如何实现这个过程。1. 在pycha...转载 2018-03-27 10:16:08 · 1002 阅读 · 0 评论 -
Appium基础篇15-模拟手指点击tap方法
本篇来学习下,appium中模拟手指点击方法,叫tap,有两个参数,元素位置和点击持续时间。一般语法是这样的tap((x1,y1),(x2,y2)],100), 我们通过手机百度中,利用tap方法来点击摄像头按钮来举例。1.元素定位记住上面的元素坐标,下面需要用到。2.tap代码实现[python] view plain copyimport os import time from ap...转载 2018-03-27 10:15:43 · 3186 阅读 · 0 评论 -
Appium基础篇14-上下左右滑屏操作swipe方法
本篇来学习webdriver.py下一个滑屏操作,这个方法叫swipe,这个方法只是手机端appium的方法,不是selenium3的方法。在介绍滑屏操作之前,你需要了解如何得到屏幕的高和宽,因为每个手机尺寸不一样。1.先来看看x,y轴在appium中如何定义2.左右上下滑屏代码实现[python] view plain copyimport os import time from a...转载 2018-03-27 10:15:34 · 744 阅读 · 0 评论 -
Appium基础篇13-无法定位app内webview页面元素
本文来讨论一个无法绕过的问题,就是app内webview页面的元素定位。现在做过app测试的朋友就知道,app里面页面有原生和webview的,或者H5的。今天,就来讨论一个目前还没有解决的问题。1.手机百度搜索结果页面手机百度,点击搜索输入框,输入关键字点击搜索,出来的搜索结果页面,无法通过UI automator viewer来定位元素。 移动框选区域,发现无法框选局部元素,右侧...转载 2018-03-27 10:15:24 · 723 阅读 · 0 评论 -
Appium基础篇2-如何获取包名和Activity
前面一篇,已经介绍了appium的环境安装,这篇我们先来看看如何获取安卓包名包名和Activity入口。我们的场景是这样的,从网络下载任何一个安卓的app安装文件到 电脑,如何获取包名包名和Activity入口。这里,我们需要用到android SDK相关工具的命令来实现。1. cmd输入aapt,回车出现报错 我们主要是通过aapt来获取包名和Activity信息,但是如果你在c...原创 2018-03-23 10:42:48 · 310 阅读 · 0 评论 -
Appium基础篇3-第一个appium自动化脚本之自动安装apk包到手机
这篇,我们开始来一个实战练习,如何通过appium自动把电脑上一个安卓程序包给安装到一台安卓手机中。在写脚本之前,我们需要统一下方法和工具。我们知道Appium和selenium一样都支持Java和Python,当然还有其他几个语言。那么,我们选择哪个语言来写我们的自动化测试脚本?Java还是Python?我也是第一次学习appium在安卓上的app自动化测试。Java和Python我都会,至少用...转载 2018-03-23 10:43:42 · 1016 阅读 · 0 评论 -
Appium基础篇4-如何解决每次运行脚本都安装apk的问题
前面一篇,我们介绍了第一个appium自动化测试脚本,已经学会了,如何安装一个apk包并启动它。那么,如果你把前面一篇的脚本运行多次,你就会发现,我们运行一次脚本都会执行安装一次包的过程。其实在安装之前,appium自动把你安装过得手机百度给卸载,然后再次安装。怎么知道它再次安装了呢,如果你运行一次,启动之后,还需要你手点击同意各种权限申请弹窗,说明这个包已经被重新安装过一次。那么问题就来了,...转载 2018-03-23 10:44:10 · 655 阅读 · 0 评论 -
Appium基础篇5-抓元素工具之UI Automator Viewer
在开始介绍元素定位之前,我们需要介绍一个工具,这个工具是Android SDK 自带的工具,叫UI Automator Viewer,可以在SDK\tools下找到这个工具并启动它,本篇,来介绍下这个工具的基本使用,通过学习本篇,基本上能够通过UI Automator Viewer来获取安卓app页面上的元素的定位表达式。1.在Android SDK 目录下,找到tools文件夹2. 启动UIA...转载 2018-03-23 10:45:00 · 334 阅读 · 0 评论 -
Appium基础篇6-抓元素工具之Android Device Monitor
上一篇,我们介绍了如何使用UI Automator Viewer这个工具来获取安卓上app的页面元素的信息。除了UI Automator Viewer之外,其实Android SDK下还有一个工具支持来抓取元素的属性,这个工具叫Android Device Monitor,简称DDMS,也在tools文件夹下。1.进入SDK安装目录2.点击Monitor.bat点击后,默认页面如下图。3....转载 2018-03-23 10:45:25 · 431 阅读 · 0 评论 -
Appium基础篇7-元素定位之by_android_uiautomator
这篇开始陆续介绍各种元素定位方式,如果学习过Selenium的朋友,就很清楚Selenium有八种方式支持元素定位。其实在appium也有多中方式支持元素定位,有些定位方法是共有的,有些定位方式只能在Android,有些定位方法只能在iOS上,当然本系列不讨论iOS的任何东西,只关注安卓。1.看下面这个图, 如何定位问题描述: 用UI automator viewer方法,推荐、热点、...转载 2018-03-23 10:45:57 · 838 阅读 · 0 评论 -
Appium基础篇8-元素定位之by_class_name
本篇继续学习Appium在安卓上的页面元素定位方法。前面我们已经介绍了两种,by_id和by_android_uiautomator,这篇来学习by_class_name。个人觉得by_class_name使用频率不是很高,因为很容易多个元素的class是一样的。不管怎么说,学习下和了解还是有必要的。我们来验证定位手机百度,打开后搜索输入框如何通过bc_class_name来定位。1.打开U...转载 2018-03-23 10:46:23 · 824 阅读 · 0 评论 -
Appium基础篇9-元素定位之by_xpath
我们继续来介绍Appium元素定位方法,有些人做过selenium自动化测试,对xpath元素定位很熟悉。他突然想用xpath来定义手机app页面元素,那么这个是否可以呢?我们在IDE环境输入driver.,后面就自动弹出各种方法,也看到了确实有xpath元素定位。本篇就来介绍xpath元素定位,一般来说,元素定位选择第一是ID,第二是class,如果class没有重复,第三是by u...转载 2018-03-23 10:46:49 · 426 阅读 · 0 评论 -
Appium基础篇10-元素定位之by_accessibility_id
本篇来介绍另外一种元素定位方式,叫by_accessibility_id,它是一个什么鬼呢?因为我们在UI Automator Viewer界面上并没有找到这个字段,我可以告诉你,这个对应的字段是content-desc,结果找了很久,没有在手机百度找到这个类型的来举例。最后,在天猫的app找到了,而且天猫app很多元素可以用这种方式来定位。1.手机安装天猫app,利用前面文章知识获取包名和 ...转载 2018-03-23 10:47:13 · 1207 阅读 · 0 评论 -
Appium基础篇11-元素操作之点击和输入
本篇开始介绍元素操作,先来看看元素点击和元素输入行为。前面我们已经知道了元素点击的方法是click(),我们直接在前面代码基础上,用send_keys()方法给输入框输入文字。结果,我这边报错了。1. 编写send_keys()脚本,运行报错。[python] view plain copyimport os import time from appium import webdriver ...转载 2018-03-23 10:47:44 · 1027 阅读 · 0 评论 -
Appium基础篇12-解决执行完脚本,手机键盘隐藏的问题
学到了这篇,我们开始来写一个自动化测试脚本,重点在测试,也就是说断言。这前面我们只不过是把点击和输入转换成自动化的方式,这篇开始,我们需要加入断言,这样才能算一个完整的自动化测试脚本。1. 脚本内容如下[python] view plain copyimport os import time from appium import webdriver apk_path = os.p...转载 2018-03-27 10:15:05 · 387 阅读 · 0 评论 -
Appium基础篇1-如何在windows上安装Appium环境
终于开始写手机自动化测试相关的文章了,本人比较熟悉Selenium Web自动化测试。其实Selenium也支持手机端的自动化测试,最近越来越多公司手机端自动化测试采用Appium,所以作为一个懂点代码和会一点自动化测试的人来说,很有必要学习一下Appium的基本操作。如果你有Selenium编写自动化测试脚本经验,那么Appium自动化测试也很容易上手,不管你采用Python还是Java来写手...转载 2018-03-23 10:40:46 · 250 阅读 · 0 评论