實現過程:
1.使用環境
appium 、安卓SDK 、python
本文重點是自動化實例,環境搭建過程省略。
2.找到被測APP的包名和Activity Name
手機連接上電腦后,在DOS環境先使用adb devices命令確認手機與電腦連接正常。
然后 打開被測APP,輸入下面的命令,就會顯示出APP的包名與ActivityName
本人最常使用第3條命令
adb shell dumpsys window w | findstr \/ | findstr name=
或 adb shell dumpsys window |findstr mCurrent
或 adb shell "dumpsys window w|grep \/|grep name=|sed 's/mSurface=Surface(name=//g'|sed 's/)//g'|sed 's/ //g'"
3.使用Python編寫自動化腳本
啟動Appium,啟動pycharm,開始編寫自動化腳本。寫腳本之前要先導入selenium庫,可以使用pip install selenium命令直接在DOS環境安裝,也可以通過pycharm Project Interpreter安裝。
from selenium import webdriver
import time
#初始化信息
desired_caps={}
desired_caps["platformName"]="Android"
desired_caps["platformVersion"]="6.0"
desired_caps["deviceName"]="HuaWeiP9"
desired_caps["appPackage"]="com.taobao.taobao"
desired_caps["appActivity"]="com.taobao.tao.homepage.MainActivity3"
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub",desired_caps)
#在搜索框輸入關鍵詞
driver.find_element_by_id("com.taobao.taobao:id/home_searchedit").click()
# 等待時間
time.sleep(3)
driver.find_element_by_id("com.taobao.taobao:id/searchEdit").send_keys("adidas")
time.sleep(3)
driver.find_element_by_id("com.taobao.taobao:id/searchbtn").click()
#截圖
driver.quit()
其它:
1.通過UI Automator Viewer(安卓SDK自帶的工具)可以查看APP頁面元素屬性,進而定位元素,實現各種操作
2.運行下面這一行代碼時報錯:
driver.find_element_by_id("com.taobao.taobao:id/searchEdit").send_keys("adidas")
Message: Parameters were incorrect. We wanted {"required":["value"]} and you sent ["text","sessionId","id","value"]
原因:
selenium新版導致的問題,降級后解決:
最新的版本卸載,安裝3.3.1這個版本
1. pip uninstall selenium
2. pip install selenium==3.3.1