寫在前面:
本文介紹識別元素的工具和元素的定位方法,識別元素的工具主要有uiautomator和monitor,以及Appium Inspector(Windows下小編在1.7.0之后版本可使用,1.4.16版本不行),本系列教程用的appium1.4.16本文,故暫不介紹Appium Inspector。
一、常用的識別元素的工具介紹
- 啟動uiautomatorviewer.bat/monitor.bat。打開sdk/tools目錄找到uiautomatorviewer.bat/monitor.bat.如圖:
- 雙擊后啟動,啟動后如圖
二、Monitor連接手機
- win+R快捷鍵輸入cmd打開,輸入adb devices,確認當前有設備接入。
- 打開魔漫相機主界面,在Monitor界面點擊手機機器人小圖標
,此按鈕每次都會刷新最新界面
三、定位元素
- 移動鼠標到需要定位的元素區域,並點擊一下,使紅色實線條框住。點擊按鈕進漫畫
Node Detail里能看到元素對應的屬性
resource-id:com.manboker.headportrait:id/entry_album_set
class:android.widget.ImageView
index 界面有多個相同屬性時使用
四、點擊我的按鈕
通過resource-id定位並點擊.最終代碼如下:
#coding:utf-8
import time from appium import webdriver desired_caps = {} desired_caps['deviceName'] = '192.168.199.101:5555' desired_caps['platformName'] = 'Android' desired_caps['platformVersion'] = '5.0' desired_caps['appPackage'] = 'com.manboker.headportrait' desired_caps['appActivity'] = 'com.manboker.headportrait.activities.FirstActivity' driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) time.sleep(8)#休眠8秒
driver.find_element_by_id('com.manboker.headportrait:id/entry_album_set').click()#點擊進入我的頁面 driver.quit()
五、Appium工具簡單使用介紹
- 雙擊appium.exe打開,進setting界面。如下截圖1是被測apk的路徑,截圖2查看app的包名及Launch Activity,截圖3是被測app的設備名
- 開啟appium
確認手機成功電腦,點擊搜索按鈕右側的三角形圖標啟動appium服務,當界面出現如下現象則證明服務已啟動。 - Remote遠程控制(appium--General Setting界面)
appium默認服務地址是127.0.0.1端口號4723,一般在本地機器上調試的話,無需修改。
若是遠程到某台自動化測試電腦運行則此ip就能派上用場了,通過修改如下代碼即可
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
改成:
driver = webdriver.Remote('http://192.168.0.105:4723/wd/hub', desired_caps)
截圖如下:ipconfig查看電腦ip
- 遠程連接
瀏覽器輸入:http://192.168.0.105:4723/wd/hub,看到如下界面,證明遠程鏈接成功 - 腳本里的代碼修改后如下
#coding:utf-8 import time from appium import webdriver desired_caps = {} desired_caps['deviceName'] = '192.168.199.101:5555' desired_caps['platformName'] = 'Android' desired_caps['platformVersion'] = '5.0' desired_caps['appPackage'] = 'com.manboker.headportrait' desired_caps['appActivity'] = 'com.manboker.headportrait.activities.FirstActivity' driver = webdriver.Remote('http://192.168.0.105:4723/wd/hub', desired_caps) time.sleep(8)#休眠8秒 driver.find_element_by_id('com.manboker.headportrait:id/entry_album_set').click() time.sleep(5) driver.quit()
六、元素定位(常用方法)
- 通過id定位
取resource-id的值:driver.find_element_by_id('com.manboker.headportrait:id/entry_album_set') - 通過class_name定位
取class內容:driver.find_element_by_class_name("android.widget.ImageView") - 通過text定位
使用text的內容:driver.find_elements_by_android_uiautomator("new UiSelector().text(\"登錄\")") - 通過name定位:driver.find_element_by_name()
- 通過xpath定位:driver.find_element_by_xpath("//android.widget.TextView[@resource-id=\"com.manboker.headportrait:id/nologin_retry\"]")
- 通過css_selector定位:driver.find_element_by_css_selector()
如上的方法pycharm輸入driver.find_element_by會自動匹配出來。
OK,本文就介紹到這,下篇介紹Appium Python API。