Python3+Appium+UI自动化
APP接口自动化
chushujin
测试过程中遇到的各种坑以及学习记录
展开
-
十六、appium启动app时,都会重新手动安装uiautomator2.server 和 uiautomator2.server.test
问题:appium启动app时,都会重新手动安装uiautomator2.server 和 uiautomator2.server.test解决方法:下载最新的appium安装包即可。地址为:https://github.com/appium/appium-desktop/releases/原创 2020-11-17 09:30:11 · 975 阅读 · 0 评论 -
十五、键盘操作press_keycode()方法
调用格式:self.driver.press_keycode('66')方法:1.电话按键电话键KEYCODE_CALL 拨号键 5KEYCODE_ENDCALL 挂机键 6KEYCODE_HOME 按键Home 3KEYCODE_MENU 菜单键 82KEYCODE_BACK 返回键 4KEYCODE_SEARCH 搜索键 84KEYCODE_CAMERA 拍照键 27KEYCODE_FOCUS 拍照对焦键 80KEYCODE_POWER 电源键 2原创 2020-10-11 21:04:30 · 3239 阅读 · 3 评论 -
十四、报错:configparser.InterpolationSyntaxError: ‘%‘ must be followed by ‘%‘ or ‘(‘, found: “%)‘] 的解决
报错内容:Failed to import test module: app.BusinessProcess.testLendRequestProcess.testPrivateOwner.test_001_lend_request_private_owner_moduleTraceback (most recent call last):File "C:\Python36\lib\unittest\loader.py", line 428, in _find_test_pathmodule.原创 2020-10-11 21:03:40 · 1621 阅读 · 0 评论 -
十三、Python+appium获取Toast内容
需要获取到toast弹框内容改toast弹框的属性有class等1.可通过class属性,使用xpath定位text = self.find_element_xpath('//*[@class="android.widget.Toast"]').text2.若上面的定位不到,可加一属性text = self.find_element_by_xpath('//*[@class="android.widget.Toast" and @index ="1"]').text...原创 2020-10-11 21:03:05 · 961 阅读 · 7 评论 -
十二、解决【夜神模拟器和手机】同时连接电脑出现 :adb server version(31) doesn‘t match this client(41)和adb devices 无法识别
1. 启动夜神模拟器后cmd - adb devices:出现:adb server version(31) doesn't match this client(41)cmd - adb version :出现:adb devices 无法识别,什么都不显示2.分析本机sdk的adb路径:cmd -- where adbsdk adb 版本号:Version 29.0.5-5949299进入夜神模拟器中bin:版本号为:Android Deb...原创 2020-10-11 21:02:28 · 514 阅读 · 0 评论 -
十一、UI自动化框架介绍
C:\chushujin\study\sales_ui_auto>tree├─.idea│ └─inspectionProfiles├─app_package --APP的apk包├─comm --封装一些访问数据库,日志输出,读取配置文件,HTMLTestRunner报告,获取设备信息方法封装├─config --封装一些获取项目路径方法,读取excel等│├─locator --封装读取配置中元素的路径│ └─app│ ├─appCommon│ │ ├─testLoginOu.原创 2020-10-11 21:01:52 · 590 阅读 · 0 评论 -
十、单选框定位选择
看图具体分析:1.配偶,是,否分别为兄弟关系2.所以可以通过配偶(大哥)定位二哥和弟弟3.二哥为://android.view.View[@text='配偶']/following-sibling::android.view.View[1]/android.view.View/android.widget.RadioButton 弟弟为://android.view.View[@text='配偶']/following-sibling::android.view.V...原创 2020-10-11 21:01:10 · 646 阅读 · 1 评论 -
九、页面滑动具体判断滑动幅度
使用方法看之前文章:四、Appium-python-UI自动化之页面-上下滑动、左右滑动swipe方法操作下面介绍具体的滑动幅度例子:想选择 天津,就需要将天津向上滑动一个幅度,具体做法如下:1. 选中调试窗口2. 将鼠标移至 天津市 三个字上获取起始移动点坐标(181,1998)3. 将鼠标移至 北京市 三个字上获取终点坐标(181,1888)4. 获取手机屏幕的长和宽(x,y)=(1080,20...原创 2020-10-11 21:00:31 · 352 阅读 · 0 评论 -
八、appium通过text定位
1.通过xpath定位textxpath路径为://android.widget.EditText[@text='请输入包含街道的完整地址']2.通过AndroidUIAutomator# 这个在运行时,调用的是Android自带的UI框架UiAutomator的Api# 介绍几个简单常用的,text、className、resource-id# text# 匹配全部text文字driver.find_element_by_android_uiautomator...原创 2020-10-11 20:59:39 · 5168 阅读 · 1 评论 -
七、Xpath定位元素(/child:: ,/parent::,/preceding-sibling::,/following::)
记录一下selenium,appium中xpath根据父子、兄弟、相邻节点定位的方法:一、定位方式简介:1.Xpath轴所有的定位方式:2.常用的定位方式汇总:/child:: (由父节点定位子节点),/parent::(由子节点定位父节点),/preceding-sibling::(由弟弟节点定位哥哥节点),/following::(由哥哥节点定位弟弟节点)二、定位方式详细实例介绍:1.由父节点定位子节点/child:: (由父节点定位子节点)<html&g...原创 2020-10-11 20:57:23 · 12419 阅读 · 2 评论 -
六、Appium-python-UI自动化之记一次使用隐式等待:implicitly_wait()的坑(消耗等待时间太久)
情景描述: APP首次登录时通常会有位置授权操作,APP-UI自动化时需要检测该授权弹框是否存在,如果存在则需要授权,如果不存在则进行下一步逻辑代码如下: MyLog.logger().info("检查位置授权弹框之前时间为:" + str(datetime.datetime.now())) # 检查位置授权是否弹出 ...原创 2020-02-17 19:05:45 · 1244 阅读 · 0 评论 -
五、Appium-python-UI自动化之强制等待:sleep,隐式等待:implicitly_wait,显示等待:WebDriverWait()
一、强制等待sleep()'''设置固定休眠时间,单位为秒。 由python的time包提供, 导入 time 包后就可以使用。缺点:不智能,使用太多的sleep会影响脚本运行速度。'''import timesleep(10) #等待10秒二、隐式等待:implicitly_wait()'''由webdriver提供的方法,一旦设置,这个隐式等待会在WebD...原创 2020-02-16 16:25:56 · 2725 阅读 · 1 评论 -
四、Appium-python-UI自动化之Xpath定位元素
记录一下selenium,appium中xpath根据父子、兄弟、相邻节点定位的方法:一、定位方式简介:1.Xpath轴所有的定位方式:2.常用的定位方式汇总:/child:: (由父节点定位子节点),/parent::(由子节点定位父节点),/preceding-sibling::(由弟弟节点定位哥哥节点),/following::(由哥哥节点定位弟弟节点)二、定位...原创 2020-02-08 20:11:42 · 1208 阅读 · 0 评论 -
三、Appium-python-UI自动化之自动获取devicesd,version,package,appActivity
from appium import webdriver# 使用正则表达式筛选设备 idimport re# 使用time.sleep(xx)函数进行等待import time# 使用 os 模块调用命令import osdef get_sales_package(): # 测试的销售APP包的路径和包名 sales_appLocation = os.pa...原创 2020-02-08 20:10:46 · 385 阅读 · 0 评论 -
一、Appium-python-UI自动化之元素定位-获取APP中的toast,判断该元素是否存在
获取如图的toast提示直接上代码:from selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as EC def is_toast_exist(driver,text=None,timeo...原创 2020-01-25 09:00:21 · 886 阅读 · 0 评论 -
二、Appium-python-UI自动化之页面-上下滑动、左右滑动swipe方法操作
1.首先看app中怎么划分横纵坐标2.swipe函数def swipe(self, start_x, start_y, end_x, end_y, duration=None): """Swipe from one point to another point, for an optional duration. Args: ...原创 2020-01-25 09:01:17 · 2157 阅读 · 0 评论