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() 5112 5444 17045 5380 第三次默認進行了清除操作 IOS、android 通用,用時最長
actions.sendKeys().perform() 5747 3203 3298 3757 第一次較長是等待元素可以點擊 iOS、android通用,用時較長
adb shell input text 3999 948 947 891 第一次較長是等待元素可以點擊 只用於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() 146 5238 1198 4037 第一次判斷了text為空,所以沒有進行清除操作,第二次和第四次是密碼輸入框獲取到text為空的原因。 IOS、android 通用,密碼輸入框用時較長
adb shell input keyevent 67 3239 723 11353 780 第一次較長是等待元素可以點擊,第三次是要清楚的文案太長 只用於android,依賴文本長度,且密碼輸入框不能清除
pressKeyCode 3282 845 1288 1388 第一次較長是等待元素可以點擊 只用於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;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM