appium输入和清除操作各方法对比(android)

最近在写android app自动化测试时,发现输入和清除操作耗费时间比较长,下面我用了不同的方法进行输入和清除操作,对比下时间(选取测试的一组数据做分析),选出最佳方法。

1、输入操作

1.1、webElement.sendKeys()

   可以看到 该方法的输入时间在5s 左右

1.2、actions.sendKeys().perform()

该方法是使用Actions类的sendKeys方法,sendKeys前需要先webElement.click()

从结果可以看到该方法的输入时间在3s左右

1.3、adb shell input text

该方法是直接使用adb命令进行输入,可以看出输入时间不到1s. 操作前需要先webElement.click()

1.4、总结

方法第一次第二次第三次第四次解释结果
webElement.sendKeys()51125444170455380第三次默认进行了清除操作IOS、android 通用,用时最长
actions.sendKeys().perform()5747320332983757第一次较长是等待元素可以点击iOS、android通用,用时较长
adb shell input text3999948947891第一次较长是等待元素可以点击只用于android,时间最短

2、清除操作

2.1、webElement.clear()

 该方法在需要清除的元素没有内容时,耗费时间较长,在5s左右。清除元素有内容时时间在1s左右。如果是密码输入框,有几率出现清除不干净。

2.2、adb shell input keyevent 67

该方法直接使用adb命令删除,代码如下:

webElement.click

String conent = webElement.getText();

 while (StringUtils.isNotBlank(conent)) {

 ShellUtils.adbClear();---封装执行adb命令的方法

conent = webElement.getText();

 }

 

从图可以看出,该删除方法耗时依赖于元素的长度,比如如果是手机号码,则删除要耗时十几秒。注意:如果是密码输入框,则不会进行清除。

2.3、pressKeyCode

该方法是 点击–全选–删除,代码

webElement.click

((AndroidDriver<WebElement>) driver).pressKeyCode(29, 28672);

((AndroidDriver<WebElement>) driver).pressKeyCode(112)

 

该方法删除时间稳定在1.3左右

 

2.4、总结

方法第一次第二次第三次第四次解释结果
webElement.clear()146523811984037第一次判断了text为空,所以没有进行清除操作,第二次和第四次是密码输入框获取到text为空的原因。IOS、android 通用,密码输入框用时较长
adb shell input keyevent 67323972311353780第一次较长是等待元素可以点击,第三次是要清楚的文案太长只用于android,依赖文本长度,且密码输入框不能清除
pressKeyCode328284512881388第一次较长是等待元素可以点击只用于android,时间最短

 

3、结果

输入最终代码如下

case "sendKeys":

   webElement.click();
 if (StringUtils.isNotEmpty(webElement.getText())
         || Boolean.valueOf(webElement.getAttribute("password"))) {

//如果元素内容不为空或者是密码输入框,则先进行删除操作。pressKeyCode删除
((AndroidDriver<WebElement>) driver).pressKeyCode(29, 28672);
((AndroidDriver<WebElement>) driver).pressKeyCode(112);

}

   ShellUtils.adbSendKeys(elementLocator.getActionValue());---adb 命令输入
 break;

 

转载于:https://www.cnblogs.com/leohou/p/10878075.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值