天天看點

Appium疑難雜症

坑之初體驗

在Appium的初體驗中,遇到了一些坑坑窪窪。将他們記錄下來,以後友善查閱。

1. session大于60秒沒接收到指令自動關閉

通過Appium-Python-Client連接配接到appium的session,60秒内沒有操作的話,session就會被自動關閉,操作指的是元素的定位、擷取、點選、輸入等。

解決辦法: desired_caps中加入逾時時間配置

Python代碼如下:

Python desired_caps = {} # 在啟動配置裡面加入newCommandTimeout參數 desired_caps['newCommandTimeout'] = 200

2. Appium通過npm安裝不上,咋個辦

解決辦法:

使用淘寶鏡像cnpm安裝,

具體可見我前一篇文章裡的安裝appium

但是注意cnpm預設在目前目錄安裝npm包。

3. UIAutomationviewer不支援動态頁面

  1. 先不啟動Appium,直接開UIAutomationviewer,先擷取到想要的控件資訊。
  2. 啟動安卓虛拟機,在虛拟機裡邊擷取(但是虛拟機需要安裝自己想要的包,甚是麻煩啊);
  3. 用driver.page_source檢視源碼,然後正則抓取相關控件資訊(但是我好像沒發現id資訊), 盡量不要用xpath定位xml頁面,查找非常慢;
  4. hierarchyviewer代替此工具,前提是裝置開啟ViewServer(虛拟機是預設開啟的),真機一般隻有工程機能開啟,市面上目前發現隻有小米裝置可以開啟

4. 怎麼檢視裝置是否連接配接

裝置通過usb連接配接上計算機以後,在cmd視窗輸入adb devices

可擷取到裝置資訊。

5. 擷取包名

一般情況可以用檢視日志的辦法,可以先清空日志

adb logcat -c

然後擷取正在展示app,前提是手機端要打開此app

adb logcat | grep display

然後可以從正在展示的内容裡提取 package和activity了,但是我能擷取到支付寶的,QQ卻不可以,很神奇。