作者:Mr-long類 | 来源:互联网 | 2023-10-12 18:10
按键类操作 按键类操作用来模拟在手机设备上进行按键操作(推荐使用方式一)一、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 键