Appium自动化(13) - 详解 Keyboard 类里的方法和源码分析
2024-10-07 15:19:22
如果你还想从头学起Appium,可以看看这个系列的文章哦!
https://www.cnblogs.com/poloyy/category/1693896.html
前言
Keyboard 类在 appium\webdriver\extensions 下的 keyboard.py 模块中
- 属于键盘操作类
hide_keyboard(self: T, key_name: Optional[str] = None, key: Optional[str] = None, strategy: Optional[str] = None)
作用
隐藏设备上的键盘
参数讲解(参数仅适用iOS)
- key_name:iOS 才需要此参数
- key:不知道....
- strategy:隐藏键盘的模式
用法
driver.hide_keyboard()
源码解析
- data 字典类型,用于存储传给方法的参数
- 如果传的参数不为None,则都会添加到 data 中
- 最后调用execute() ,执行对应操作
is_keyboard_shown(self: T)
作用
检查当前键盘是否已出现
返回
如果键盘已出现,则返回True
用法
print(driver.is_keyboard_shown())
keyevent(self: T, keycode: int, metastate: Optional[int] = None)
作用
发送按键code,模拟手机按键【Android专属】
参数讲解
- keycode:按键代码
- metastate:键码的元信息(不知道有啥用)
keyCode查找可看此地址
http://developer.android.com/reference/android/view/KeyEvent.html
注意
现在这方法其实已经过时了,用下面的press_keycode取代它,否则可能会报以下错误
warn: [DEPRECATED] The keyevent function has been deprecated and will be removed. Please use the pressKeyCode function instead.
用法
driver.keyevent(4)
press_keycode(self: T, keycode: int, metastate: Optional[int] = None, flags: Optional[int] = None)
作用
发送按键code,模拟手机按键【Android专属】
参数讲解
- keycode:按键代码
- metastate:键码的元信息(不知道有啥用)
- flags:按键事件的合集
用法
driver.press_keycode(4)
long_press_keycode(self: T, keycode: int, metastate: Optional[int] = None, flags: Optional[int] = None)
作用
按键code长按发送给设备,模拟手机按键【Android专属】
参数讲解
- keycode:按键代码
- metastate:键码的元信息(不知道有啥用)
- flags:目标按键事件
用法
driver.long_press_keycode(4)
按键代码列表
电话键
控制键
组合键
基础键
最新文章
- BZOJ2292——【POJ Challenge 】永远挑战
- HTML5本地存储——Web SQL Database
- NTP时间同步服务器设置
- oracle rac理解和用途扩展
- SQL常见笔试面试题
- java.lang.VerifyError异常
- linux内核模块相关命令:lsmod,depmod,modprobe,modinfo,insmod,rmmod 使用说明
- 关于解压覆盖IIS文件后,新的文件不具备权限导致DMS系统无法正常运行
- System.UnauthorizedAccessException: 拒绝访问 temp 目录。用来运行 XmlSerializer 的标识“NT AUTHORITY\NETWORK SERVICE”没有访问 temp 目录的足够权限。CodeDom 将使用进程正在使用的用户帐户进行编译,这样,如
- swift 赋值判断
- netstat 命令state值
- Android利用百度地图定位
- 自动运行native2ascii 命令的Bat文件的编写
- yum安装epel库后,安装软件总是提示Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again(无法检索epel仓库)
- math方法集合
- Chrome浏览器加载CSS文件TTFB waiting超时的奇葩问题
- CART分类与回归树与GBDT(Gradient Boost Decision Tree)
- sql 里的 IF ELSE 语句用法
- pyqt4实现tab界面切换
- Andriod Studio科普篇——4.关于编译的常见问题