Appium基礎五:appium相關API

來源:互聯網
上載者:User

標籤:pre   通知欄   util   3.1   use   install   drive   nta   byte   

1.擷取資訊類:

  1.1 擷取當前介面的組件:

      driver.currentActivity(); //擷取當前介面的activity,可用於斷言是否跳轉到預期的activity 

  1.2 擷取當前頁面的樹形結構原始碼

      driver.pagesource();      //擷取當前頁面的樹狀結構圖

2.App安裝與卸載相關類API

  2.1 判斷APP是否安裝

    driver.isAppInstalled("package name");    //判斷應用是否已安裝

    driver.installApp(appPath);               //安裝APP 

    driver.removeApp(StringbundleId);         //卸載包,Android中是包名,IOS是bundleId

    driver.closeApp();                        //關閉應用,按住Home鍵把應用退到後台    

    driver.launchApp();                       //啟動應用

    driver.resetApp();                        //先close再launch

  2.2 啟動其他應用:

    driver.startActivity("com.android.camera", ".CameraLauncher");

3.設定相關類:

  3.1 擷取和設定網路狀態

    int status = driver.getNetworkConnection().value;  //擷取網路狀態

    System.out.println(status);

    driver.setNetworkConnection(new NetworkConnectionSetting(status));  //設定網路狀態

    //或者

    driver.setNetworkConnection(new NetworkConnectionSetting(false, true, false));

4.檔案操作類:

  4.1.push檔案、pull檔案

       File file = new File("d:\\test.txt"); //test.txt內容為"test"

         String content = null;

         try {

               content = FileUtils.readFileToString(file);

         } catch (IOException e) {

                  e.printStackTrace();

         }

                 

         byte[] data = Base64.encodeBase64(content.getBytes());

         driver.pushFile("sdcard/test.txt", data);        

         byte[] resultDate = driver.pullFile("sdcard/test.txt");

         System.out.println(new String(Base64.decodeBase64(resultDate))); //列印結果為"test"

5.擷取控制項類(擷取多個元素只需要將findElement改成findElements即可):

  5.1通過元素id尋找當前頁面的目標元素:

     driver.findElementById("id");   //通過id定位元素

  5.2 通過元素name尋找當前頁面的目標元素:

     driver.findElementByClassName("classname"); //通過name定位元素

  5.3 通過元素Xpath尋找當前頁面的目標元素:

     driver.findElementByXpath("xpath");    //通過xpath定位元素

  5.4 通過元素的name值定位(也就是text)

     driver.findElementByName("name");      //通過text值定位

  5.5 混合定位,通過Xpath和index等聯合定位

     driver.find_element_by_xpath("//android.widget.TextView[contains(@text,‘圖庫‘)]") //在頁面檢測所有的android.widget.TextView類中含有text="圖庫"的元素

6.使用者操作類:

  6.1 點擊事件:

      1)driver.click();

      2)driver.tap(position.duration);       //類比手指點擊,可設定按住時間長度(ms)

        如:driver.tap([(300,500)],10)

  6.2 搖一搖手機

      1)driver.shake()

  6.3 輸入事件

      1)driver.elememt.sendKeys();

      2)driver.elememt.sendText();

  6.4 滑動螢幕(翻屏和快速移動):

      driver.swipe(startX,startY, endX,endY, during(ms));//將屏螢幕從(startX,startY)滑動到(endX,endY)間隔during(ms)

      driver.flick(startX,startY,endX,endY)   //按住A(startX,startY)點快速移動到B(endX,endY)點

  6.5 縮放事件(適合測試類別似有運動地圖的情境):

      1)driver.pinch(element,percent,steps);                       //在元素上執行縮小操作,percent和steps可不寫,當不寫時表示預設

        如:driver.pinch(element,150,30)

      2)driver.zoom(element,percent,steps);                        //在元素上執行放大操作,percent和steps可不寫,當不寫時表示預設

        如:driver.zoom(element,200,50)

  6.6 長按事件:

      1)driver.longPress();

  6.7 Keyevent事件

      driver.keyevent("4")   #返回鍵操作

  6.8 開啟和關閉操作:

      driver.close()    //關閉當前視窗

      driver.quit()     //退出指令碼運行並關閉每個相關的視窗串連

  6.9 擷取視窗的高和寬

      driver.manage().window().getSize().width;

      driver.manage().window().getSize().height;

7.等待Wait相關類;

  7.1 sleep方法:

      Thread.sleep(60000) 強制等待60s  //強制等待60s

  7.2 implicitlyWait方法

      driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);  //隱式等待,全域等待30S不管元素是u否已經載入

  7.3 WebDriverWait方法(顯示等待,需增加一定等待時間,可通過WebDriverWait和util來決定)

  7.4 waitActivity方法(隱式等待,需接受三個參數,Activity名稱、timeout超出時間和檢測時間間隔(S)):

      driver.waitActivity("Activity",timeout(s),during(s));         

8.AppiumDriver輔助類:

   8.1 截屏並儲存本地

public static void ScreenShot(AndroidDriver driver,String ScreenName){

             String dir_name = System.getProperty("user.dir")+"\\"+"異常圖片";

             if(!(new File(dir_name).isDirectory())){

                      new File(dir_name).mkdir();

                      }

         File screen = driver.getScreenshotAs(OutputType.FILE);

             try{

                      System.out.println("異常圖片儲存路徑:"+new File(dir_name));

                      FileUtils.copyFile(screen, new File(dir_name+"\\"+ScreenName+".jpg"));

             }catch(Exception e){

                      e.printStackTrace();

             }

8.2 開啟通知欄介面:

   driver.openNotifications();

   8.3 鎖屏:

    driver.lockScreen(2);//鎖屏

    //判斷是否鎖屏

    driver.isLocked();

   8.4 自動滑動列表

    driver.scrollTo("text");   //自動滑動列表

    //或者

    driver.scrollToExact("text");

Appium基礎五:appium相關API

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.