Appium自动化(11):Appium常用操作之按键类操作
  EEe9kDcoGHnA 2023年11月02日 65 0

按键类操作

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

方式一、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

# 实现手机键盘自带搜索或者发送的操作
driver.press_keycode(66)

 

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 键

 

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
EEe9kDcoGHnA
最新推荐 更多