天天看点

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

按键类操作

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

一、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键打开      
driver.long_press_keycode(29,1)  # 长按 shift 键