書接上回
我們已經(jīng)可以使用Appium啟動App了∑倌現(xiàn)在我們改成使用腳本啟動App,并自動點擊按鈕臭杰。
做個示例粤咪,如果我要在啟動頁點擊小姐姐
頭像,然后點擊開始閱讀
渴杆,如圖:
上面的操作是用鼠標點擊完成的寥枝,怎么用腳本實現(xiàn)呢?
總共分5步
- 創(chuàng)建python項目
- 安裝Appium插件
- 配置Desired Capabilities磁奖,并啟動app
- 在Appium中獲取元素信息
- 通過腳本點擊按鈕
創(chuàng)建python項目
- 使用pyCharm創(chuàng)建一個
Pure Python
就可以囊拜,選擇一個項目目錄,其他保持不變比搭,直接點Create
冠跷,如圖:
創(chuàng)建過程中會出現(xiàn)下面的框,稍等片刻就好敢辩,
- 在項目名
novel_test
上右鍵蔽莱,選擇New -> Python File
,創(chuàng)建一個python文件戚长,如圖:
在彈出的對話框中輸入文件名盗冷,比如
main.py
,創(chuàng)建完成后同廉,如圖:
安裝Appium插件
- 點擊pycharm下方的
Terminal
仪糖,會打開終端并自動處在當前項目的虛擬環(huán)境目錄下,方便快捷迫肖。如圖:
- 執(zhí)行命令
pip3 install Appium-Python-Client
锅劝。如圖說明安裝成功:
配置Desired Capabilities
- 需要首先引入appium庫中的webdriver;
- 用代碼進行配置,與在appium的新會話配置的內(nèi)容是一樣的蟆湖,
- 使用webdriver啟動app故爵,url為啟動appium展示的Host和Port。
代碼如下:
from appium import webdriver
# 配置設備及app信息
desired_caps = dict()
desired_caps['platformName'] = 'iOS'
desired_caps['platformVersion'] = '14.3'
desired_caps['deviceName'] = 'iPhone 12 Pro'
desired_caps['app'] = 'com.xx.xx' # 此處填寫你的bundle id
# 啟動app
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
- 在文件中右鍵隅津,選擇
Run 'main'
诬垂,執(zhí)行main.py文件, 如圖:
Tips: 如果報錯Message: An unknown server-side error occurred while processing the command. Original error: App with bundle identifier 'com.your.bundleid' unknown
,說明你的模擬器上現(xiàn)在還沒有安裝你要啟動的app伦仍,需要先打開這個app的項目代碼结窘,運行,把app安裝到這個模擬器上充蓝。再次Run一下就可以了隧枫。
在Appium中獲取元素信息
可以使用腳本啟動app了喉磁,下一步就可以用腳本幫我們做事情了。
想要使用腳本點擊按鈕官脓,首先要獲取按鈕的信息协怒,這時就需要打開Appium,我們需要借助Appium來獲取按鈕的信息确买,先打開這個頁面New Session
-> 選擇之前保存的配置信息 -> Start Session
斤讥,如下圖:
此時我們點擊小姐姐的頭像纱皆,右側(cè)
Selected Element
區(qū)域會顯示出這個按鈕的所有屬性信息湾趾,如圖:
通過腳本點擊按鈕
- 小姐姐頭像按鈕
我們可以獲取到小姐姐頭像按鈕的兩個屬性:
accessibility id
:"img launch girl normal",
xpath
: "http://XCUIElementTypeButton[@name="img launch girl normal"]"
我們使用accessibility id
來定位到這個元素派草,并調(diào)用并調(diào)用click()
搀缠,代碼如下:
driver.find_element_by_accessibility_id('img launch girl normal').click()
Tips: 也可用xpath獲取元素,調(diào)用driver的find_element_by_xpath方法即可近迁。
- 開始閱讀按鈕
點擊“開始閱讀”按鈕艺普,查看他的所有屬性
Appium提示不建議使用xpath定位元素,那我們可以使用name屬性來定位鉴竭,并調(diào)用
click()
歧譬,代碼如下:
driver.find_element_by_name('開始閱讀').click()
大功告成
至此這個示例的腳本就全部寫完了,在main.py中右鍵搏存,選擇Run 'main'
跑一下看看吧瑰步,效果如下:
完整代碼如下:
from appium import webdriver
# 配置設備及app信息
desired_caps = dict()
desired_caps['platformName'] = 'iOS'
desired_caps['platformVersion'] = '14.3'
desired_caps['deviceName'] = 'iPhone 12 Pro'
desired_caps['app'] = '你自己的bundle id'
# 啟動app
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
#點擊小姐姐頭像
driver.find_element_by_accessibility_id('img launch girl normal').click()
#點擊"開始閱讀"
driver.find_element_by_name('開始閱讀').click()
下一篇,配置真機自動化璧眠。
Have fun.