Classcss |
Key Methodandroid |
Key Memberjson |
Parentbootstrap |
Description服務器 |
Comment微信 |
Bootstrap | testRunServer | 以一個UiAutomatorTestCase的方法的方式運行一個SocketServer來監聽4724端口 | 整個bootstrap是以UiAutomator的TestCase的方式運行的,因此這裏的Bootstrap這個類必需要繼承於UiAutomatorTestCase | ||
SocketServer | handleClientData | 讀取socket進來的字串命令信息並轉換成AndroidCommand命令而後調用runCommand命令執行命令進行返回 | |||
AndroidCommandType | enum AndroidCommandType {ACTION,SHUTDOWN } | 安卓命令的類型,只有兩種,shutdown的處理方式和普通的action會不同 | |||
AndroidCommand | action/getElement | JSONObject json;AndroidCommandType cmdType; | 從用戶發過來的json命令信息獲得真正的命令 | ||
CommandHandler | execute | 虛擬類,其餘真實CommandHandler如click的父類 | |||
AndroidCommandExecutor | execute | HashMap<String, CommandHan dler> map | map是全部的命令字串和真實的CommandHandler的一個映射。其成員函數execute就是經過字串命令找到map對應的handler而後執行的 | ||
AndroidCommandResult | AndroidCommandResult | JSONObject json | 組織json格式返回值的類 | ||
AndroidElement | Click | UiObject el;String id; | 表明了一個控件 | 其中id是其在AndroidElementsHash維護的elements這個哈希表的key,並不是控件id。 | |
AndroidElementHash | addElement | Hashtable<String, AndroidEle ment> elements; | 維護這個session當前爲止碰到過的全部控件的哈希表 | 注意key就是上面AndroidElement的id這個成員變量。每有一個新的控件從appium pc端過來這個值就會加一 | |
Click | execute | CommandHandler | 處理點擊命令的類。真正執行的是傳進來的AndroidCommand對應UiObject的Click方法 | 其餘find,drag,setText等命令同理 | |
Strategy | fromString | publicenumStrategy { CLASS_NAME ("class name」), CSS_SELECT OR("css selector」) , ID(「id"), NAME(「name "), LINK_TEXT( "link text"), PARTIAL_LI NK_TEXT(「p artial link text"), XPATH(「xpa th"), ACCESSIBIL ITY_ID(「ac cessibilit y id」), ANDROID_UI AUTOMATOR( "-android uiautomato r"); | 查找控件命令的策略類 | find這個CommandHandler會根據用戶給出的不一樣策略來用不一樣的方式進行控件查找。好比用xpath的方式和用uiautomator的方式是不同的 | |
做者 | 自主博客 | 微信服務號及掃描碼 | CSDN |
天地會珠海分舵 | http://techgogogo.com | 服務號:TechGoGoGo掃描碼:![]() |
http://blog.csdn.net/zhubaitian |