滑动操作与拖拽操作

# 滚动处理
# elementObj1 目标滚动元素,elementObj2 起始滚动元素
# 底层通过action操作,与web ui相反,origin_el为目标元素,destination_el为起始元素
# 通过模拟手势可以看出 从下面的元素移动到上面的元素
# action.press(origin_el).move_to(destination_el).release().perform()
# web elementObj1为要移动的元素 elementObj2为移动到某个元素
# action.click(elementObj1).move_to_element(elementObj2).release().perform()
driver.scroll(elementObj1, elementObj2) #通过坐标实现滑屏操作
# 从手机的左上角开始,横坐标为x轴,纵坐标为y
# 分辨率不同,坐标不相同,所以需要根据屏幕的大小做比例运算
driver.swipe(start_x, start_y, end_x, end_y,duration=None) # 拖拽
# elementObj1源元素,elementObj2目标元素
# 通过long_press实现
driver.drag_and_drop(elementObj1, elementObj2) # 多点触控 模拟手指点击
# tap模拟按住坐标多少秒,[(x,y)] 多个坐标则写多个元祖。参数2为按住多少秒。ms(毫秒)为单位
driver.tap([(x, y)], 5000)
# 通过坐标实现滑屏操作----------------------------------------
size = driver.get_window_size()#查看屏幕大小
# print(size)
width = size.get('width')
height = size.get('height')
y1 = height * 0.8#标记滑动起始位置
x1 = width * 0.5
y2 = height * 0.2#标记滑动最终位置
x2 = width * 0.5
driver.swipe(x1,y1,x2,y2)

操作APP

# 返回是否安装了对应包名的App True 或者 False
driver.is_app_installed('com.syqy.wecash') # 关闭初始化信息中的App
driver.close_app() # 启动初始化信息中的App
driver.launch_app() # 安装app 参数为软件的绝对路径
driver.install_app(r'C:\Users\bjhouyafan\Desktop\tester\appUi\wecash.apk') # 卸载app 参数接收appPackageName
driver.remove_app('com.syqy.wecash') # 获取当前打开的app名
driver.current_activity # 启动某一个包的,某一个入口
# 参数接受appPackage,appActivity
# 可以省略多个步骤直接到达指定测试的位置
driver.start_activity('com.android.browser','.BrowserActivity') # 每隔0.5秒判断一次当前的app名称是否是activityName
# WebDriverWait
driver.wait_activity('activityName', 5, 0.5) # 将启动的app退出到后台,多少秒后在切回app
driver.background_app('m') # 清除应用数据缓存,相当于卸载重装
driver.reset()
操作混合App的H5页面
# 操作混合app的H5
driver.find_element_by_id('com.android.browser:id/url').send_keys('https://m.baidu.com/?from=844b&vit=fps')#打开浏览器,输入网址
time.sleep(2)
driver.press_keycode(66)#这个keycode码可以使用百度搜索,66是代表回车 # 打开原生app时,想操作内置的H5页面,需要先切换webview,只要切换进h5页面后就和web自动化一样
print(driver.contexts)#查看内置H5地址
#切换webview,必须开发开启debug模式
driver.switch_to.context('WEBVIEW_com.android.browser')
												

Appium移动端自动化:Api接口详解的更多相关文章

  1. 移动端自动化==>AppiumApi接口详解

    Appium 初始化配置信息(Desired Capabilities) Desired Capabilities实际上就是一个字典,它主要用于向Appium Server提供初始化配置参数,如:想要 ...

  2. 【精选】Nginx模块Lua-Nginx-Module学习笔记(一)Nginx Lua API 接口详解

    源码地址:https://github.com/Tinywan/Lua-Nginx-Redis 一.介绍 各种* _by_lua,* _by_lua_block和* _by_lua_file配置指令用 ...

  3. 移动端自动化测试-AppiumApi接口详解

    Appium 初始化配置信息(Desired Capabilities),Desired Capabilities实际上就是一个字典,它主要用于向Appium Server提供初始化配置参数,如:想要 ...

  4. Nginx模块Lua-Nginx-Module学习笔记(一)Nginx Lua API 接口详解

    源码地址:https://github.com/Tinywan/Lua-Nginx-Redis 一.介绍 各种* _by_lua,* _by_lua_block和* _by_lua_file配置指令用 ...

  5. web端自动化——selenium3用法详解

    selenium中文学习文档链接:https://selenium-python-zh.readthedocs.io/en/latest/getting-started.html selenium3+ ...

  6. socket接口详解

    1. socket概述 socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信. socket起源于UNIX,在Unix一切 ...

  7. JDBC常用接口详解

    JDBC中常用接口详解 ***DriverManager 第一.注册驱动 第一种方式:DriverManager.registerDriver(new com.mysql.jdbc.Driver()) ...

  8. centos7.2环境nginx+mysql+php-fpm+svn配置walle自动化部署系统详解

    centos7.2环境nginx+mysql+php-fpm+svn配置walle自动化部署系统详解 操作系统:centos 7.2 x86_64 安装walle系统服务端 1.以下安装,均在宿主机( ...

  9. map接口详解

    1.Map接口详解(1)映射(map)是一个存储键.键值对的对象,给定一个键,可以查询得到它的值,键和值都可以是对象(2)键必须是唯一的,值可以重复(Map接口映射唯一的键到值)(3)有些映射可以接收 ...

随机推荐

  1. linux配置mysql数据库远程连接失败

    今天配置linux下mysql数据库可以远程访问的问题,百度这方面的资料有很多,但是方法都一样,都试过了却未能解决,记录一下 第一步:在/etc/mysql/my.cnf下找到bind-address ...

  2. ASE Alpha Sprint - backend scrum 10

    本次scrum于2019.11.15在sky garden进行,持续30分钟 参与人: Xin Kang, Zhikai Chen, Jia Ning, Hao Wang 请假: Lihao Ran, ...

  3. 2019-9-2-win10-uwp-兴趣线

    title author date CreateTime categories win10 uwp 兴趣线 lindexi 2019-09-02 12:57:38 +0800 2018-2-13 17 ...

  4. repquota - 文件系统配额的汇总

    SYNOPSIS(总览) repquota [ -vugs ] filesystem... repquota [ -avugs ] DESCRIPTION(描述) repquota 显示与配额文件相关 ...

  5. smbd - 向客户提供SMB/CIFS服务的服务器

    总览 SYNOPSIS smbd [-D] [-F] [-S] [-i] [-h] [-V] [-b] [-d <debug level>] [-l <log directory&g ...

  6. 11-基于CPCI的中频功率放大收发板

    1.板卡参数介绍 无线输入口 无线发射口 1M~3GHZ,可调,步进100HZ(非跳频模式) 功率:≤﹢10±2.5 dBm 收发通道数 收发各1通道/板 中频输入输出 70MHz, 5MHz/30M ...

  7. Sass-@if的使用

    @if 指令是一个 SassScript,它可以根据条件来处理样式块,如果条件为 true 返回一个样式块,反之 false 返回另一个样式块.在 Sass 中除了 @if 之,还可以配合 @else ...

  8. Swagger添加文件上传测试

    先上对比图 图一无法选择文件,图二可以选择文件 图一 图二 添加过滤器 public class SwaggerFileUploadFilter : IOperationFilter { /// &l ...

  9. 【串线篇】Mybatis缓存之整合第三方缓存

    为什么要用第三方缓存?因为mybatis的缓存机制说白了就是一个map,不够强大.但幸好mybatis有自知之明将其Cache做成了一个接口开放出来,我们可以实现这个接口用第三方专业的缓存框架去自定义 ...

  10. 运行rabbitmq

    docker run -d -p 5672:5672 -p 15672:15672 --name myrabbitmq c4663bdca2cd