appium---第一個腳本--啟動一個已存在的app


 

1、可以使用android-sdk中的aapt工具

①、選擇一個版本的build_tools,加入path環境變量中

②、驗證aapt環境是否正常

 

 3、下載你要測試的包到本地,放入某一地址中(隨意):aapt dump badging D:\Users\4admin\Desktop\jianshu_xpgod.apk(包的位置)

然后就可以獲得包的所有信息,如包名、LauncheActivity

 

 

4、然后就可以開始寫腳本啦

四、寫腳本

    1platformName:這里是android的apk

    2.deviceName:手機設備名稱,可以通過adb devices查看

    3.platformVersion:android系統的版本號(如6.0.1)

    4.appPackage:apk包名

    5.appActivity:apk的launcherActivity

注意!!!:這些信息基本都能在這里找到,一定不能寫錯

 

 

以下代碼是照抄的網上資源

 1 from appium import webdriver;
 2 from appium import version;
 3 #from selenium import webdriver;

10 #from appium import webDriver
11 pack_info={
12 'platformName':'android',
13 'deviceName':'215a343c0804',
14 'platformVersion':'23',(也可以寫版本號,如7.1.2) 15 'appPackage':'hykb.xmcy.hykb',(包名一定不能寫錯啊) 16 'appActivity':'com.xmcy.hykb.app.ui.splash.SplashActivity'
   "noReset": "True"(發現每次啟動實際上是一個重裝過程,這樣每次都會重置權限,這個開關True就是不重裝,False就是重裝)


17 } 18 19 drive=webdriver.Remote('http://127.0.0.1:4723/wd/hub',pack_info); 20 #drive=webdriver.Remote('http://127.0.0.1:4723/wd/hub',pack_info);

 

運行后,

第一個問題:提示no moudle  name'selenium',雖然不知道運行appium相關為什么要用selenium,但很明顯還需要按照這個第三方,下載就是了(pip install selenium)

 

 

第二個問題:第一個問題已經解決,那么確認連上手機、打開appium-client,運行py代碼,正常應該要在設備中打開這個指定的app,實際卻提示以下錯誤棧

 

Traceback (most recent call last):
  File "C:/Users/4399-3046/PycharmProjects/test_case/appium_test.py", line 19, in <module>
    drive=webdriver.Remote('http://127.0.0.1:4723/wd/hub',pack_info);
  File "D:\python3.7\lib\appium\webdriver\webdriver.py", line 129, in __init__
    proxy
  File "D:\python3.7\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 157, in __init__
    self.start_session(capabilities, browser_profile)
  File "D:\python3.7\lib\appium\webdriver\webdriver.py", line 204, in start_session
    response = self.execute(RemoteCommand.NEW_SESSION, parameters)
  File "D:\python3.7\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "D:\python3.7\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.SessionNotCreatedException: Message: A new session could not be created. (Original error: Could not extract PIDs from ps output. PIDS: [], Procs: ["bad pid 'uiautomator'"])

百度了一下,意思大概是:無法創建一個新的回話,因為啟動的activity從來沒有被啟動~~~啥意思??我指定的啟動Activity也沒寫錯呀~然后網上說要指定一個【

'appWaitActivity':'com.xmcy.hykb.app.ui.startup.role.RoleActivity'

】,加了還是錯誤(其實關鍵我不知道這個appwaitActivity從哪里獲取)

 

1 > info: [debug] Responding to client with error: {"status":33,"value":{"message":"A new session could not be created. (Original error: Could not extract PIDs from ps output. PIDS: [], Procs: [\"bad pid 'uiautomator'\"])","origValue":"Could not extract PIDs from ps output. PIDS: [], Procs: [\"bad pid 'uiautomator'\"]"},"sessionId":null}
2 > info: <-- POST /wd/hub/session 500 11260.389 ms - 288 

 

第二次嘗試:仔細看了一下appium控制台的報錯信息,找到以下信息:

 

百度了一下,說是要在appium/node_modules\appium-adb\lib\adb.js中加入以下代碼,保存后,重啟appium;--------------------------------加這個是因為我的手機版本號是7.0以上的,7.0以上Uautomator不兼容的問題,最終重啟后,終於正常

 

 

 

 

 

======

最終,app中啟動正常

 

 

=====

發現另外一個問題,雖然上面已經啟動成功

①、當我電腦上即打開了夜神模擬器,又鏈接了電腦,此時,再運行代碼,會提示,找不到目標計算機

但等我關掉兩個模擬器,又正常了

是不是一次不能鏈接太多設備??

 

 

 

===========================

后面又遇到一個問題

 在部分android機型(目前在vivo中有遇到)上每次運行最新版的appium-desktop都需要安裝AppiumSetting以及Unlock,並且安裝過程需要用戶手動來確認,即使測試機上已經安裝了這兩個組件,運行appium也會要求安裝,對於測試以及腳本的調試來說非常不便。

解決方案:https://www.cnblogs.com/testway/p/9324441.html


免責聲明!

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



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