Appium——api常用函数

appium常用函数介绍:
获取页面信息:
1、 def get_current_activity(cls, driver):
'''
获取当前页面的activity
:param driver:
:return:
'''
return driver.current_activity
2、 def get_current_pagesource(cls, driver):
'''
获取当前页面源码
:param driver:
:return: 返回数据类型为str
'''
return driver.page_source
3、 def get_contexts(cls, driver):
'''
获取当前窗口的所有context名称
:param driver:
:return: 返回当前所有窗口context,可以进行切换,switch_to_context()
'''
return driver.contexts
更多的api可以查看webdriver源码
获取元素:
在appium定位中已经介绍了几种常见的定位方式了,再介绍在appium中特殊的定位方式:
1、find_element_by_accessibility_id ,在uiautomatorviewer中,content-desc内容即为accessibility_id
2、find_elements_by_android_uiautomator,使用android内带的uiautomator来定位元素
①text属性
driver.find_element_by_android_uiautomator('new UiSelector().text("CustomView")').click()         #text
driver.find_element_by_android_uiautomator('new UiSelector().textContains("View")').click()        #textContains
driver.find_element_by_android_uiautomator('new UiSelector().textStartsWith("Custom")').click()    #textStartsWith
driver.find_element_by_android_uiautomator('new UiSelector().textMatches("^Custom.*")').click()    #textMatches
②class属性
driver.find_element_by_android_uiautomator('newUiSelector().className("android.widget.TextView").text("Custom View")').click()     #className
③resourceId属性
driver.find_element_by_android_uiautomator('newUiSelector().resourceId("android:id/text1")').click()     #resourceId
更多方法根据实际查找
控件操作:
1、输入
send_keys()
2、点击
单击:click()
3、滑动
driver.swipe(x1, y1, x2, y2), x1 y1为起始位置 x2 y2为结束位置
swipe还有个参数是滑动时间,duration
4、缩放
pinch() 默认缩小一半
zoom() 默认放大一倍
5、触摸
long_press() 长按
press() 短按
release() 释放
wait() 等待
cancel() 取消
perform() 执行
这种事件的操作跟selenium中webdriver一样,有个action类,在Appium中是TouchAction
action = TouchAction(driver)
action.long_press().wait(1000).perform() 默认单位是毫秒
6、android keyevent值
KEYCODE_UNKNOWN=0;
KEYCODE_SOFT_LEFT=1;
KEYCODE_SOFT_RIGHT=2;
KEYCODE_HOME=3;
KEYCODE_BACK=4;
KEYCODE_CALL=5;
KEYCODE_ENDCALL=6;
KEYCODE_0=7;
KEYCODE_1=8;
KEYCODE_2=9;
KEYCODE_3=10;
KEYCODE_4=11;
KEYCODE_5=12;
KEYCODE_6=13;
KEYCODE_7=14;
KEYCODE_8=15;
KEYCODE_9=16;
KEYCODE_STAR=17;
KEYCODE_POUND=18;
KEYCODE_DPAD_UP=19;
KEYCODE_DPAD_DOWN=20;
KEYCODE_DPAD_LEFT=21;
KEYCODE_DPAD_RIGHT=22;
KEYCODE_DPAD_CENTER=23;
KEYCODE_VOLUME_UP=24;
KEYCODE_VOLUME_DOWN=25;
KEYCODE_POWER=26;
KEYCODE_CAMERA=27;
KEYCODE_CLEAR=28;
KEYCODE_A=29;
KEYCODE_B=30;
KEYCODE_C=31;
KEYCODE_D=32;
KEYCODE_E=33;
KEYCODE_F=34;
KEYCODE_G=35;
KEYCODE_H=36;
KEYCODE_I=37;
KEYCODE_J=38;
KEYCODE_K=39;
KEYCODE_L=40;
KEYCODE_M=41;
KEYCODE_N=42;
KEYCODE_O=43;
KEYCODE_P=44;
KEYCODE_Q=45;
KEYCODE_R=46;
KEYCODE_S=47;
KEYCODE_T=48;
KEYCODE_U=49;
KEYCODE_V=50;
KEYCODE_W=51;
KEYCODE_X=52;
KEYCODE_Y=53;
KEYCODE_Z=54;
KEYCODE_COMMA=55;
KEYCODE_PERIOD=56;
KEYCODE_ALT_LEFT=57;
KEYCODE_ALT_RIGHT=58;
KEYCODE_SHIFT_LEFT=59;
KEYCODE_SHIFT_RIGHT=60;
KEYCODE_TAB=61;
KEYCODE_SPACE=62;
KEYCODE_SYM=63;
KEYCODE_EXPLORER=64;
KEYCODE_ENVELOPE=65;
KEYCODE_ENTER=66;
KEYCODE_DEL=67;
KEYCODE_GRAVE=68;
KEYCODE_MINUS=69;
KEYCODE_EQUALS=70;
KEYCODE_LEFT_BRACKET=71;
KEYCODE_RIGHT_BRACKET=72;
KEYCODE_BACKSLASH=73;
KEYCODE_SEMICOLON=74;
KEYCODE_APOSTROPHE=75;
KEYCODE_SLASH=76;
KEYCODE_AT=77;
KEYCODE_NUM=78;
KEYCODE_HEADSETHOOK=79;
KEYCODE_FOCUS=80;//*Camera*focus
KEYCODE_PLUS=81;
KEYCODE_MENU=82;
KEYCODE_NOTIFICATION=83;
KEYCODE_SEARCH=84;
KEYCODE_MEDIA_PLAY_PAUSE=85;
KEYCODE_MEDIA_STOP=86;
KEYCODE_MEDIA_NEXT=87;
KEYCODE_MEDIA_PREVIOUS=88;
KEYCODE_MEDIA_REWIND=89;
KEYCODE_MEDIA_FAST_FORWARD=90;
KEYCODE_MUTE=91;
其它相关:
1、reset() 重置应用,如首次登录app的导航页
2、is_app_installed() 判断app是否安装,返回布尔值
例如:使用微信登录时判断是否安装微信
3、install_app()

需要注意的是一个是app名字,而安装app给的参数是app路径
4、remove_app() 卸载app
5、close_app() 关闭app
6、wait_activity() 隐式等待 需要等待的activity 超时时间 检测时间间隔三个参数
7、get_screenshot_as_file() 截屏 保存图片路径

转载于:https://www.cnblogs.com/dreamyu/p/8038970.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/415094.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工作183:动态渲染数据 数据在数字字典里面

1接口调用 /*调用接口*/created() {/*动态渲染content_type接口*/getAction("/dict/list",{dict_code:"content_type"}).then(res>{this.content_typeres.data})/*动态渲染*/getAction("/dict/list",{dict_code:"resource_type"})…

Android 集成微信支付详解

打包后才能起调支付 微信支付成功起调 微信skd下载:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter11_1 签名APK下载:https://open.weixin.qq.com/zh_CN/htmledition/res/dev/download/sdk/Gen_Signature_Android.apk 1、首先到微信.…

工作184:自定义事件

1子组件 mongo.vue <template><button click"eat">按钮</button> </template><script> export default {created() {this.$on("eat", function(fruit) {console.log("子组件接收自己发射的事件");});},methods:…

cesium label 显示隐藏到地底下

今天在写label的时候&#xff0c;发现高度为0时&#xff0c;label显示不全&#xff0c;影响用户体验&#xff0c;代码如下&#xff1a; window.labelEntity viewer.entities.add({label: {show: false,showBackground: true,font: "14px monospace",horizontalOrigi…

工作186:实际案例解决vue+el-element二级联动,选项选择后不显示的问题

1组件 <el-form-item label"所属部门" :label-width"formLabelWidth"><select-form change"DepartmentList" v-model"form.department_id" /></el-form-item><!-- <el-form-item prop"business_module&…

Render errors:One or more layouts are missing the layout_width or layout_height attributes

Render errors:One or more layouts are missing the layout_width or layout_height attributes 2017年05月25日 11:55:19 邹奇 阅读数&#xff1a;4207 标签&#xff1a; android studioxmlRendererrorsattributes 更多 个人分类&#xff1a; 安卓开发技术学习 版权声明&a…

工作187:表单校验规则

第一种常用方式&#xff1a;表单上加rules&#xff5b;object&#xff5d; <el-form class"apply-form first-form" :model"formData" :rules"rule" ref"form"><el-form-item label"姓名" prop"visitorName&…

AndroidStudio关联svn并上传代码到svn服务器上,更换域名

SVN安装选项 到下图位置选择【command line client tools】前面的下拉框&#xff0c;选择【Will be installed on local hard drive】&#xff0c;一直下一步知道安装完成即可。 打开AndroidStudio&#xff0c;按CtrlShifS快捷键&#xff0c;进入Settings设置页面。如上图所示…

docker安装postgres

1、拉取 postgres镜像 docker pull postgres2、开启容器 docker run --name Postgres-0 -e POSTGRES_PASSWORDpassword -d -p 5432:5432 postgres:latest3、打开命令行 docker exec -it Postgres-0 bash4、切换为管理员用户 psql -U postgres5、查看用户 \du6、继续创建数…

MySQL并发复制系列一:binlog组提交 (转载)

http://blog.csdn.net/woqutechteam/article/details/51178803 MySQL Binary log在MySQL 5.1版本后推出主要用于主备复制的搭建&#xff0c;我们回顾下MySQL 在开启/关闭 Binary Log功能时是如何工作的 。 MySQL没有开启Binary log的情况下&#xff1a; InnoDB存储引擎通过re…

工作190:页面数据不显示

账户详情里面没有返回对应的字段 所以页面不显示

工作192:vue项目如何刷新当前页面

1.场景 在处理列表时&#xff0c;常常有删除一条数据或者新增数据之后需要重新刷新当前页面的需求。 2.遇到的问题 1. 用vue-router重新路由到当前页面&#xff0c;页面是不进行刷新的 2.采用window.reload()&#xff0c;或者router.go(0)刷新时&#xff0c;整个浏览器进行…

CentOS挂Windows的NFS备忘

Windows NFS 安装和配置 注&#xff1a;需要将名称为“所有计算机”的访问类型改为“无访问权限”&#xff0c;再将可访问IP的访问类型改为“读写”&#xff0c;并勾选“允许根目录访问” &#xff0c;如WINDOWS有防火墙开放“2049”端口 CentOS需要开启两个服务&#xff1a; y…

Android2.2查看svn历史提交记录

一开始时是没有显示历史提交记录的&#xff0c;方法很简单 VCS--Subversion--ShowHistory,之后在下面的Version control就会显示“History-项目名”这个栏目&#xff0c;在这个栏目下面就可以查看提交的历史记录了 方法2&#xff1a; 对文件夹点右键&#xff0c;点击TortoiseS…

STM32 RS485 和串口 只能接收不能发送问题解决

串口 发送引脚要配置输出频率 否则配置不成功&#xff0c;导致只能接受不能发送转载于:https://www.cnblogs.com/yekongdexingxing/p/8078936.html

Android 折叠头部监听,抽屉式动画

实现方法2&#xff1a;https://blog.csdn.net/meixi_android/article/details/84136375 1、自定义scrollview,监听上下滑动距离&#xff1a; public class ScrollListenerView extends ScrollView {private ScrollListener scrollViewListener null;public ScrollListenerVie…

POJ1459 Power Network —— 最大流

题目链接&#xff1a;https://vjudge.net/problem/POJ-1459 Power NetworkTime Limit: 2000MS Memory Limit: 32768KTotal Submissions: 29270 Accepted: 15191Description A power network consists of nodes (power stations, consumers and dispatchers) connected by power…

Android PopupWindow使用,下拉式PopupWindow,底部式PopupWindow

1、实现方法1 仿微信盆友圈弹出点赞、评论 demo连接&#xff1a;android开发PopupWindow实现跟随试弹出框-Android文档类资源-CSDN下载 实现步骤 1、下载module并引入项目 引入module步骤&#xff1a;Android studio 导入module方法…