热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Appium自动化(11):Appium常用操作之按键类操作

按键类操作 按键类操作用来模拟在手机设备上进行按键操作(推荐使用方式一)一、press_keycode(self,keycode,metastateNone,flagsNone):


按键类操作

 按键类操作用来模拟在手机设备上进行按键操作(推荐使用 方式一 )

一、press_keycode(self,keycode,metastate=None,flags=None):模拟按键输入,其中:

  keycode:发送到设备的键值编码可以通过AndroidKeyCode进行查询对应数值

  metastate:将被发送的元信息

  flags:设置的按键事件标记

举例:通过键盘正常输入大写字母的操作方式有四种:

1.按下左侧shift键+字母  driver.press_keycode(29,64,59)

2.按下右侧shift键+字母  driver.press_keycode(29,128,60)

3.按下caps_lock大小写锁定键输入字符  driver.press_keycode(29,1048576)

4.按下shift键+字母  driver.press_keycode(29,1)

注:按键详细操作参考:转载至 作者:oscarforever   地址:https://www.cnblogs.com/oscarforever/p/10721774.html

import time
from appium import webdriver # 导入appium 驱动包
from appium.webdriver.webdriver import By # 导入appium 定位的方法包
des = {
'platformName':'Android',
'platformVersion':'6.0.1', # 填写android虚拟机/真机的系统版本号
'deviceName':'MuMu', # 填写安卓虚拟机/真机的设备名称
'appPackage':'com.android.settings', # 填写被测app包名
'appActivity':'.Settings', # 填写被测app的入口
'udid':'127.0.0.1:7555', # 填写通过命令行 adb devices 查看到的udid
'noReset':True, # 是否重置APP
'unicodeKeyboard':True, # 是否支持中文输入
'resetKeyboard':True, # 是否支持重置键盘
'newCommandTimeout':30 # 30秒没发送新命令就断开连接
}
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',des)
time.sleep(2)
driver.find_element(By.XPATH,'//android.widget.TextView[@content-desc="搜索设置"]').click()
time.sleep(2)
driver.find_element(By.XPATH,'//android.widget.EditText[@resource-id="android:id/search_src_text"]').click()
time.sleep(1)
driver.press_keycode(29,64,59) # 29是字母a,64是打开左边shift键开关 59是按左边shift键 ==》A
time.sleep(1)
driver.press_keycode(29,128,60) # 29是字母a,128是打开右边shift键开关 60是按右边shift键 ==》A
time.sleep(1)
driver.press_keycode(29,1048576) #29是字母a META_CAPS_LOCK_ON 大写键开关打开 ==》A
time.sleep(1)
driver.press_keycode(29,1) # 29是字母a 1是shift键打开 ==》A

 

二、keyevent(self,keycode,metastate=None):模拟按键输入,其中:

keycode:发送到设备的键值编码可以通过AndroidKeyCode进行查询对应数值

metastate:将被发送的元信息

该方法和press_keycode()方法类似,建议用press_keycode(),是新推出的方法

driver.keyevent(29,1) # a shift键打开

 

三、long_press_keycode(self,keycode,metastate=None,flags=None):

模拟长按按键操作,参数不做描述,和之前的含义一样。一般用来模拟长按手机上某个按钮,比如长按电源键,长按home键。

driver.long_press_keycode(29,1) # 长按 shift 键

 



推荐阅读
  • 浅谈Android五大布局——LinearLayout、FrameLayout和AbsoulteLa
    为什么80%的码农都做不了架构师?Android的界面是有布局和组件协同完成的,布局好比是建筑里的框架,而组件则相当于建筑里的砖瓦。 ... [详细]
  • 使用 ModelAttribute 实现页面数据自动填充
    本文介绍了如何利用 Spring MVC 中的 ModelAttribute 注解,在页面跳转后自动填充表单数据。主要探讨了两种实现方法及其背后的原理。 ... [详细]
  • 本文详细介绍了如何在PHP中使用Memcached进行数据缓存,包括服务器连接、数据操作、高级功能等。 ... [详细]
  • selenium通过JS语法操作页面元素
    做过web测试的小伙伴们都知道,web元素现在很多是JS写的,那么既然是JS写的,可以通过JS语言去操作页面,来帮助我们操作一些selenium不能覆盖的功能。问题来了我们能否通过 ... [详细]
  • Hadoop MapReduce 实战案例:手机流量使用统计分析
    本文通过一个具体的Hadoop MapReduce案例,详细介绍了如何利用MapReduce框架来统计和分析手机用户的流量使用情况,包括上行和下行流量的计算以及总流量的汇总。 ... [详细]
  • 本文将介绍几款常用的搜索引擎,包括Google、百度、搜狗和去哪儿网,旨在为用户提供更多高效的网络搜索工具。所有推荐的搜索引擎均为免费服务。 ... [详细]
  • 本文将详细介绍如何配置并整合MVP架构、Retrofit网络请求库、Dagger2依赖注入框架以及RxAndroid响应式编程库,构建高效、模块化的Android应用。 ... [详细]
  • 本文探讨了Android系统中联系人数据库的设计,特别是AbstractContactsProvider类的作用与实现。文章提供了对源代码的详细分析,并解释了该类如何支持跨数据库操作及事务处理。源代码可从官方Android网站下载。 ... [详细]
  • 本文详细介绍了PHP中的几种超全局变量,包括$GLOBAL、$_SERVER、$_POST、$_GET等,并探讨了AJAX的工作原理及其优缺点。通过具体示例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 本文概述了在GNU/Linux系统中,动态库在链接和运行阶段的搜索路径及其指定方法,包括通过编译时参数、环境变量及系统配置文件等方式来控制动态库的查找路径。 ... [详细]
  • 宝塔面板下启用HTTPS的详细指南
    本文提供了在宝塔面板环境中配置HTTPS的具体步骤,确保您的网站通信更加安全可靠。 ... [详细]
  • 本文介绍了一种在 Android 开发中动态修改 strings.xml 文件中字符串值的有效方法。通过使用占位符,开发者可以在运行时根据需要填充具体的值,从而提高应用的灵活性和可维护性。 ... [详细]
  • 2023年1月28日网络安全热点
    涵盖最新的网络安全动态,包括OpenSSH和WordPress的安全更新、VirtualBox提权漏洞、以及谷歌推出的新证书验证机制等内容。 ... [详细]
  • Docker基础入门与环境配置指南
    本文介绍了Docker——一款用Go语言编写的开源应用程序容器引擎。通过Docker,用户能够将应用及其依赖打包进容器内,实现高效、轻量级的虚拟化。容器之间采用沙箱机制,确保彼此隔离且资源消耗低。 ... [详细]
  • 在CentOS 7中部署Nginx并配置SSL证书
    本文详细介绍了如何在CentOS 7操作系统上安装Nginx服务器,并配置SSL证书以增强网站的安全性。适合初学者和中级用户参考。 ... [详细]
author-avatar
Mr-long類
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有