appium自動化測試(2)-工具(monitor、uiautomatorviewer)


獲取應用信息:
  1. from appium import webdriver
  2. desired_caps ={}
  3. desired_caps['platformName']='Android'# 哪種移動平台
  4. desired_caps['platformVersion']='4.2'  #設備版本號
  5. desired_caps['deviceName']='Android Emulator' #設備是模擬機
  6. desired_caps['appPackage']='com.android.calculator2' #待測試的app的java package
  7. desired_caps['appActivity']='.Calculator' #待測試的app的activity名字
  8. driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) #
討論:webdriver.Remote實際上就是原生webdriver的子類,另外Remote()構造函數的第一個參數中需要顯示指定appium server監聽的端口
1、monitor.bat(獲取app的package&activity)

該文件位於your_andriod_sdk_path\tools下面。

該工具可以幫我們找到android控件的content-description,為以后的find_element_by_accessibility_id 定位方法做參數使用。

2、 uiautomatorviewer.bat( 獲取app的package和控件屬性)

該文件位於your_andriod_sdk_path\tools下面。

該工具主要用來查看控件的屬性,比如resource id,class name等。

該工具也可查看被測app的appPackage(Desired Capabilities中使用)。

 
       
3、獲取activity名字
1、直接看源碼,推薦;
2、反編譯

如果沒有代碼,那么可以反編譯該app。

這里將用到2個工具,分別是dex2jar和jd-gui。

以工具包里的ContactManager.apk為例,簡單介紹一下反編譯的流程。

  • 1,重命名ContactManager.apk為ContactManager.zip並解壓得到文件classes.dex;
  • 2,解壓dex2jar-0.0.9.15.zip,並從命令行進入該文件夾;C:\appium\apk反編譯\dex2jar-0.0.9.15
  • 3,運行命令d2j-dex2jar.bat  C:\appium\apk反編譯\com.meijialove.activity-1\classes.dex在當前文件夾下得到classes-dex2jar.jar;
  • 4,解壓jd-gui-0.3.6.windows.zip得到文件jd-gui.exe;
  • 5,使用jd-gui.exe打開classes-dex2jar.jar;
     
3、查看log,發現在Android Devices Monitor的log可以看到activity的名字
          
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 






免責聲明!

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



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