App自动化中的键盘搜索问题

使用App模拟器执行自动化测试时键盘搜索场景(输入查询条件点击键盘上的查询按钮)是经常遇到的场景,但由于模拟器自带的键盘无法满足需求,新安装的输入法又容易对页面元素定位造成干扰,因此在测试过程中需要通过adb命令设置不同输入法的方式来实现这样的场景测试.

  • 前期准备条件

    1.在模拟器上安装合适的输入法(可以选用搜狗);
    2.在设置->语言和输入法界面中打开需要的输入法,如图所示:
    在这里插入图片描述
    3.使用adb shell ime list -s命令查看模拟器中的输入法列表信息
    在这里插入图片描述

  • 使用切换不同输入法的方式执行键盘搜索场景
    以下场景是通过转换输入法执行2次键盘搜索

		//使用adb shell命令切换输入法(set后面的信息需要用到前面说到的命令)
 		String cmdSouGouIme = "cmd /c adb shell ime set com.sohu.inputmethod.sogou/.SogouIME";
		String cmdDefaultIme = "cmd /c adb shell ime set io.appium.settings/.AppiumIME";
		//使用adb shell命令通过keyevent关键字执行搜索操作(keyevent 66表示搜索,其他关键字可以查看java-client.jar里面io.appium.java_client.android.nativekey包中枚举类AndroidKey)
		String cmdSearch = "cmd /c adb shell input keyevent 66";
		
		FindElement.findElementByText(androidDriver, "会员", 8).click();
		//第一次搜索
		FindElement.findElementById(androidDriver, "id/et_member", 3).sendKeys("会员01");
		//切换到需要的输入法
		CmdExecute.execute(cmdSouGouIme);
		//输入完毕之后增加点击操作是要将键盘调出,否则cmdSearch命令将无法执行
		FindElement.findElementById(androidDriver, "id/et_member", 3).click();
		//执行搜索操作
		CmdExecute.execute(cmdSearch);
		IntervalTime.waitTime(2);
		//为保证输入法键盘不影响页面,搜索操作完毕后将输入法切换到默认输入法关掉键盘
		CmdExecute.execute(cmdDefaultIme);
		//第二次搜索(操作方式与第一次一致)
		FindElement.findElementById(androidDriver, "id/et_member", 3).sendKeys("132****9072");
		CmdExecute.execute(cmdSouGouIme);
		IntervalTime.waitTime(2);
		FindElement.findElementById(androidDriver, "id/et_member", 3).click();
		CmdExecute.execute(cmdSearch);

以上即是App模拟器中执行键盘搜索的问题,此方法只是一种执行方式,若有更好的方法可以一起讨论研究.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值