元素的定位
滑動
1.首先獲取整個屏幕的寬度和高度
?intwidth=driver.manage().window.getSize().width;
?intheight=driver.managet().window,getSize().height;
2.開始滑動:
?向上滑動:
?driver.swipe(width/2,height*3/4,width/2,height/4,during);
?向下滑動:
?driver.swipe(width/2,height/4,width/2,height*3/4,during);
?向左滑動:
?driver.swipe(width*3/4,height/2,width/4,height/2,during);
?向右滑動:
?driver.swipe(width/4,height/2,width*3/4,height/2,during);
點擊
tap(self, positions, duration=None):
當(dāng)控件無法獲取時媒佣,那我們就可以使用坐標(biāo)用tap方法做點擊操作懦胞,而且tap方法可以用于多點點擊父腕。
WebElement 元素的常用方法
1. 點擊方法 ? ? ?element.click()
2.元素是否被啟用 ? ??element.isEnabled()
3.是否顯示 ? ? ? ?element.isDisplayed()
4.是否選中(檢查一個復(fù)選框或單選按鈕被選中) ? ? ??element.isSelected()
5.獲取元素文本 ? ? ?element.getText()
6.獲取高度 ? ? ? ? ??element.getSize().getHeight()
7.獲取寬度 ? ? ? ? ??element.getSize().getWidth()
8.獲取標(biāo)簽 ? ? ? ? ??element.getTagName()
9.元素左上角X軸 ? ? ? ? ? ?element.getLocation().getX();
10.元素左上角Y軸 ? ? ? ? ??element.getLocation().getY();
11.點擊 ? ? ?intfingers(手指),intduration(持續(xù)) ? ??driver.tap(2,2);
AppiumDriver 常用方法
1.獲取當(dāng)前使用的平臺名稱 ? ?driver.getAutomationName()
2.獲取上下文 ? ??driver.getContext()driver.getContextHandles()
3.安裝app ? ??driver.installApp("D:\\apk\\base.apk");
4.App是否安裝了 ? ? ?driver.isAppInstalled("com.example.android.contactmanager");
5.卸載app(卸載前要重置app狀態(tài)) ??driver.removeApp("com.example.android.contactmanager");
6.運行app ? ??driver.launchApp();
7.關(guān)閉app ? ??driver.closeApp();
8. 重置app狀態(tài)(如果沒有運行重置會出現(xiàn)異常) ? ??driver.resetApp();
等待時間
隱式等待,此處的隱式等待是針對Driver,每次執(zhí)行命令的 最長執(zhí)行時間也可以理解為超時時間惨远,一些人對此處有誤解衫冻,認為是讓Driver等一段時間澎胡,確實某些時候能讓Driver等一段時間述暂,
但是影響是全局的,每次Driver執(zhí)行找不到元素都會等待此處設(shè)置的時間叨橱;
隱式等待:driver.manage().timeouts().implicitlyWait(second,TimeUnit.SECONDS);
顯式等待,就是明確的要等到某個元素的出現(xiàn)或者是某個元素的可點擊等條件,等不到,就一直等,除非在規(guī)定的時間之內(nèi)都沒找到,那么就跳出Exception.
WebElemente = (newWebDriverWait(chromeDriver,10)).until(newExpectedCondition(){
@Override
publicWebElementapply(WebDriverd) {
returnd.findElement(By.id("id"));}});
AndroidDriver 常用方法(文件傳送典蜕、截圖)
9.本地文件推送到手機(遠程路徑,本地路徑)
driver.pushFile("/data/local/tmp/logs.log",newFile("D:\\logs.log"));
10.截圖:
Filefile=driver.getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(file,newFile("D:\\AutoScreenCapture\\file.png"));
11.異常截圖
FilescreenShotFile= ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
try{
FileUtils.copyFile(screenShotFile,newFile("D:\\AutoScreenCapture\\"+".png"));
}catch(IOExceptione) {
e.printStackTrace();
}