使用appium測(cè)試app自動(dòng)化查找元素時(shí)比較麻煩,沒有selenium查找web頁面元素方便,
在做網(wǎng)站、網(wǎng)站建設(shè)過程中,需要針對(duì)客戶的行業(yè)特點(diǎn)、產(chǎn)品特性、目標(biāo)受眾和市場(chǎng)情況進(jìn)行定位分析,以確定網(wǎng)站的風(fēng)格、色彩、版式、交互等方面的設(shè)計(jì)方向。創(chuàng)新互聯(lián)還需要根據(jù)客戶的需求進(jìn)行功能模塊的開發(fā)和設(shè)計(jì),包括內(nèi)容管理、前臺(tái)展示、用戶權(quán)限管理、數(shù)據(jù)統(tǒng)計(jì)和安全保護(hù)等功能。
并且局限性也比較高,使用起來不是太靈活。
那下面介紹下我們一般經(jīng)常使用到的一些查找元素的方法(已錘子手機(jī)為例)。
有兩個(gè)工具可以用來查找元素:安卓sdk自帶的uiautomator viewer;appium最新版1.0.2。
建議使用uiautomator viewer,個(gè)人感覺使用起來要方便些,包括復(fù)制元素的值也比較方便。
先鏈接錘子手機(jī):
方法有很多,:
通過xpyth定位:findElementByXPath("http://android.widget.TextView[10]")xpath下標(biāo)從1開始,使用完整的classname
通過text name:find_element_by_name(name對(duì)應(yīng)uiautomator掃描后text的內(nèi)容)
通過id:find_element_by_id(id對(duì)應(yīng)resource-id)
通過classname定位:find_element_by_class_name(class_name對(duì)應(yīng)class)
通過accessibility id:find_element_by_accessibility_id(accessibility_id對(duì)應(yīng)content-desc)
定位到某個(gè)文本框,并輸入內(nèi)容:
driver.find_element_by_id("xxxxx").send_keys("123456")
滑動(dòng)屏幕:
獲取屏幕尺寸 width=self.driver.get_window_size()['width']height=self.driver.get_window_size()['height']
滑動(dòng)屏幕 driver.swipe(width*9/10, height*1/2, width*1/10, height*1/2, 1000)
在手機(jī)上打開頭條,只介紹常用的三種:
find_element_by_name(name對(duì)應(yīng)uiautomator掃描后text的內(nèi)容)
腳本中輸入這個(gè)name就可以定位到這個(gè)元素,然后做相應(yīng)的操作,比如click()等
find_element_by_id(id對(duì)應(yīng)resource-id,用這個(gè)查找比較準(zhǔn)確)
用resource-id查找是最準(zhǔn)確的!
find_element_by_class_name(class_name對(duì)應(yīng)class,用這個(gè)一般都查找出的是一堆的數(shù)據(jù),因?yàn)橛泻芏嗟胤蕉际褂猛粋€(gè)class name)
這個(gè)是名為android.widget.TextView的classname,其他的行全部都是這個(gè)name
看看,其他的也是這個(gè)class name,所以用這個(gè)查找會(huì)找出一個(gè)列表的數(shù)據(jù)出來,如果想單獨(dú)取某個(gè)行的數(shù)據(jù),就需要使用for循壞或者下腳標(biāo)來取[X]
在做app自動(dòng)化時(shí)需要花很大的精力去提前獲取的數(shù)據(jù)并整理,因?yàn)楹芏鄶?shù)據(jù)是不能一一
對(duì)應(yīng)的。
有問題可以加QQ群:610845268