日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時間:2024/9/21 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 appium输入和清除操作各方法对比(android) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

最近在寫android app自動化測試時,發(fā)現(xiàn)輸入和清除操作耗費(fèi)時間比較長,下面我用了不同的方法進(jìn)行輸入和清除操作,對比下時間(選取測試的一組數(shù)據(jù)做分析),選出最佳方法。

1、輸入操作

1.1、webElement.sendKeys()

? ?可以看到 該方法的輸入時間在5s 左右

1.2、actions.sendKeys().perform()

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

從結(jié)果可以看到該方法的輸入時間在3s左右

1.3、adb shell input text

該方法是直接使用adb命令進(jìn)行輸入,可以看出輸入時間不到1s. 操作前需要先webElement.click()

1.4、總結(jié)

方法第一次第二次第三次第四次解釋結(jié)果
webElement.sendKeys()51125444170455380第三次默認(rèn)進(jìn)行了清除操作IOS、android 通用,用時最長
actions.sendKeys().perform()5747320332983757第一次較長是等待元素可以點(diǎn)擊iOS、android通用,用時較長
adb shell input text3999948947891第一次較長是等待元素可以點(diǎn)擊只用于android,時間最短

2、清除操作

2.1、webElement.clear()

?該方法在需要清除的元素沒有內(nèi)容時,耗費(fèi)時間較長,在5s左右。清除元素有內(nèi)容時時間在1s左右。如果是密碼輸入框,有幾率出現(xiàn)清除不干凈。

2.2、adb shell input keyevent 67

該方法直接使用adb命令刪除,代碼如下:

webElement.clickString conent = webElement.getText();while (StringUtils.isNotBlank(conent)) {ShellUtils.adbClear();---封裝執(zhí)行adb命令的方法conent = webElement.getText();}

?

從圖可以看出,該刪除方法耗時依賴于元素的長度,比如如果是手機(jī)號碼,則刪除要耗時十幾秒。注意:如果是密碼輸入框,則不會進(jìn)行清除。

2.3、pressKeyCode

該方法是?點(diǎn)擊–全選–刪除,代碼

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

?

該方法刪除時間穩(wěn)定在1.3左右

?

2.4、總結(jié)

方法第一次第二次第三次第四次解釋結(jié)果
webElement.clear()146523811984037第一次判斷了text為空,所以沒有進(jìn)行清除操作,第二次和第四次是密碼輸入框獲取到text為空的原因。IOS、android 通用,密碼輸入框用時較長
adb shell input keyevent 67323972311353780第一次較長是等待元素可以點(diǎn)擊,第三次是要清楚的文案太長只用于android,依賴文本長度,且密碼輸入框不能清除
pressKeyCode328284512881388第一次較長是等待元素可以點(diǎn)擊只用于android,時間最短

?

3、結(jié)果

輸入最終代碼如下

case "sendKeys":webElement.click();if (StringUtils.isNotEmpty(webElement.getText())|| Boolean.valueOf(webElement.getAttribute("password"))) {//如果元素內(nèi)容不為空或者是密碼輸入框,則先進(jìn)行刪除操作。pressKeyCode刪除 ((AndroidDriver<WebElement>) driver).pressKeyCode(29, 28672); ((AndroidDriver<WebElement>) driver).pressKeyCode(112);}ShellUtils.adbSendKeys(elementLocator.getActionValue());---adb 命令輸入break;

?

轉(zhuǎn)載于:https://www.cnblogs.com/leohou/p/10878075.html

總結(jié)

以上是生活随笔為你收集整理的appium输入和清除操作各方法对比(android)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。