您好,登錄后才能下訂單哦!
如何正確的使用Appium?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
什么是 Appium
Appium 是一個開源的移動端自動化框架,可用于測試原生應用,移動網頁應用和混合型應用,且其是跨平臺的,可用于 iOS 和 Android 操作系統。這也就意味著你可以針對不同的平臺使用同一套 Api 來編寫測試程序,以提高代碼的服用行和可維護性。
為了更好的應對千變萬化的需求,Appium 沒有和某一門具體的語言綁死,開發者可以使用自己最熟悉的任何語言來使用該框架。Appium 之所以這么靈活完全得益于其優秀的設計思路,該框架使用 client-server 的設計模式,只要 server 端可以收到 client 端發送過來的請求,那么 client 端用什么語言來實現其實意義已經不大了,無關緊要。
這樣的設計思想帶來了巨大的好處,其一就是使框架可以做到支持多語言,其二則是可以把 server 端放在任何機器上,即使是云服務器上也完全沒有問題。
想必在程序圈兒的你肯定對 Hello World 不陌生,每當我們學習一個新的技術的時候基本都會寫一個 Hello World 的 demo 來快速熟悉該技術,同樣,今天我就帶著大家做一個入門 Appium。
首先我們把環境搭建起來,依次安裝下列軟件。
Android Studio
JDK
Python 3.8
PyCharm
網易模擬器
Appium 桌面版
之所以需要安裝 Android Studio 完全是因為鏈接安卓模擬器調試 App 程序時會用到 Android SDK,而 Android Studio 附帶了 Andoid SDK,固直接安裝 Android Studio。另外我們選擇 Appium 桌面版,是因為桌面版附帶可視化操作界面,對新手比較友好。
其中前四個大家可能都比較熟悉,自行安裝即可。Appium 則需從 https://github.com/appium/appium-desktop/releases/tag/v1.18.3 下載對應的版本直接安裝就可以了。
安裝完成后啟動 Appium,Host 和 Port 默認即可,接著點擊下面的配置按鈕進入配置頁,設置完成 Android Home 和 Java Home 后直接啟動 Server 就可以了。
當看到如下界面時,恭喜你,Server 已經啟動成功了。
接下來,我們開始完善 client 端,其實就是代碼而已,直接調用 Api 即可。因為我們是要通過 Appium 來操控模擬器上的 App,所以需要先將模擬器啟動。命令行輸入 adb devices
如果看到以下信息,則說明模擬器是正常的。
接著就是編寫 client 端代碼了,
from appium import webdriver desired_capabilities = { "platformName": "Android", # 操作系統 "deviceName": "emulator-5554", # 設備 ID "platformVersion": "6.0.1", # 設備版本號 "appPackage": "com.tencent.mm", # app 包名 "appActivity": "com.tencent.mm.ui.LauncherUI", # app 啟動時主 Activity 'noReset': True # 是否保留 session 信息 可以避免重新登錄 } driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_capabilities) print('鏈接到安卓模擬器')
有了以上信息之后,我們就可以通過程序直接鏈接到模擬器,然后自動啟動微信 App 了。
那么啟動了微信 App 之后我們還可以做什么操作呢?基本上我們手動可以做的操作,程序都可以替我們完成。
driver.find_element_by_id('com.tencent.mm:id/f8y').click() print('查找搜索按鈕') time.sleep(3) driver.find_element_by_id('com.tencent.mm:id/bhn').send_keys('Python 技術') print('查找搜索輸入框 & 寫入搜索關鍵字') time.sleep(3) driver.find_element_by_id('com.tencent.mm:id/tm').click() print('點擊 icon 圖標') time.sleep(3) driver.find_element_by_id('com.tencent.mm:id/cj').click() print('點擊右上角頭像') time.sleep(3) driver.find_element_by_id('com.tencent.mm:id/a1u').click() print('點擊第一篇文章')
上面這一套代碼做了什么操作呢,簡言之就是通過搜索找到「Python 技術」公眾號,然后再去到該公眾號主頁并且查看了第一篇文章。同時程序為了給 App 留出一點反應時間,我們在每次發送指令后均讓程序休息 3 秒鐘。
細心的你可能發現了,上述代碼主要涉及到三個 Api, find_element_by_id()
、 send_keys()
以及 click
,看函數名也就知道是做什么的了。
那么,我們怎么知道某個元素的 ID 呢?這時候就又要請出我們的桌面版 Appium 了。點擊「啟動成功」界面右上角的放大鏡圖標。之后將上述程序中的配置信息添加上去,最后點擊「Start Session」按鈕,不出意外的話你應該能看到微信啟動界面了,就是那個地球。
但是細心的你會發現,模擬器上的界面和 Appium 上的不一致,此時需要你刷新下 Appium 上的界面信息,點擊下圖中的刷新按鈕就可以了。
如果想獲取某個元素的 ID,那么則先選中選擇按鈕,接著選中你想要獲取 ID 的元素即可。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。