日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

APPIUM操作android apk

 小豬窩969 2015-12-11
安裝appium for window
安裝Node js
下載:java-client.jar
首先安裝appium 安裝完成后在環(huán)境變量path添加"C:\Program Files (x86)\Appium\node_modules\.bin;"
驗(yàn)證安裝在命令行輸入:appium-doctor
如果出現(xiàn)下圖:表名配置成功
 
 

安裝Node js 安裝完畢再環(huán)境變量path 添加安裝路徑“;C:\Program Files\nodejs”
命令行輸入:node -v 如下圖
 
 配置目錄如下:把知乎客戶(hù)端命名為zhihu.apk
 
 
 
 
 
配置好appium環(huán)境之后,啟動(dòng)appium 選擇項(xiàng)目的apk  ,可以看見(jiàn)apk的package和Activity 如下圖:
 
 怎么去識(shí)別APP的元素的,這里用到Android SDK tools 目錄下的工具uiautomatorviewer ,執(zhí)行uiautomatorviewer.bat就可
如下圖:比如登陸按鈕,看到resourceId,就是webdriver的find Element By.id
 
 
至于登陸用戶(hù)名和密碼,在Android中都是EditText控件,可以使用By.class
 
完成對(duì)象識(shí)別,最終代碼如下:
public class AppPPDemo {
 private AndroidDriver driver;
  @Test
  public void addContact() {
            App_login login = PageFactory.initElements(driver, App_login.class);
            //點(diǎn)擊登錄按鈕
            login.login(); //紅色標(biāo)記部分 是我試驗(yàn)?zāi)懿荒苡脀ebdriver的FindBy 和PageFactory,試驗(yàn)成功可以使用 上面封裝的文件就是APP_login.java那個(gè)文件,下面會(huì)把代碼貼出來(lái)

            //等待
           driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
           //輸入用戶(hù)名和密碼
           List<WebElement> text_input = driver.findElementsByClassName("android.widget.EditText");
            text_input.get(0).sendKeys("546995529@qq.com");
           text_input.get(1).sendKeys("wf1989");
  
           WebElement button=driver.findElement(By.id("android:id/button1"));
           button.click();
            driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
          WebElement logout_button=driver.findElement(By.className("android.widget.ImageButton"));
          logout_button.click();
          WebElement logout = driver.findElement(By.id("android:id/title"));
         String title = logout.getText();
         System.out.println(title);
        logout.click();
  
  
  }
  @BeforeMethod
  public void beforeMethod() throws MalformedURLException {
         //設(shè)置appium,拿到path里面的appium路徑
         File classpathRoot = new File(System.getProperty("user.dir"));
        System.out.println("class是"+classpathRoot);
        //存放APP的目錄
        File appDir = new File(classpathRoot,"apps");
      System.out.println("appdIR是:"+appDir);
       File app = new File (appDir,"zhihu.apk");
       DesiredCapabilities zhihu=new DesiredCapabilities();
       zhihu.setCapability(CapabilityType.BROWSER_NAME,"");
       //deviceName
       zhihu.setCapability("deviceName","d6556835");
       //安卓機(jī)版本號(hào)
       //capabilities.setCapability(CapabilityType.VERSION, "4.4.2");
       //使用的平臺(tái)
       zhihu.setCapability(CapabilityType.PLATFORM, "WINDOWS");
        //獲取app的據(jù)對(duì)路徑 getAbsolutePath獲取絕對(duì)路徑
       // zhihu.setCapability("app",app.getAbsolutePath());
       zhihu.setCapability("app-package", "com.zhihu.android");
        zhihu.setCapability("app-activity", ".ui.activity.GuideActivity");
  
        driver=new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),zhihu);
  
  }
  @AfterMethod
  public void afterMethod() {
       driver.quit();
  }
}
上面封裝的APP_login.java 腳本
public class App_login {
        WebDriver driver;
        @FindBy(how=How.ID,id="com.zhihu.android:id/login")
         WebElement loginbutton;
 public App_login(WebDriver driver){
           this.driver=driver;
 }
  @Test
  public void login() {
            loginbutton.click();
  }
}
 這個(gè)是真機(jī)運(yùn)行腳本,如果想在android模擬器上運(yùn)行直接用adb devices 命令查看deviceName 替換上面腳本高亮的部分,直接運(yùn)行就行

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多