解決appium升級后不支持使用name定位的問題

前言

之前一直用的appium1.4版本,最近升級到了1.6突然發(fā)現(xiàn)之前的腳本好多都跑失敗了,一看報錯:

selenium.common.exceptions.InvalidSelectorException: Message: Locator Strategy 'name' is not supported for this session

查了資料才發(fā)現(xiàn),在appium1.5之后,by name的這種定位方式已經(jīng)徹底移除。。。腦闊疼,又要大改代碼了。

突然想到之前通過name定位的方法,被我寫在公共方法里面的:


def get_name(name):
    '''
    定位頁面text元素
    :param name:
    :return:
    '''
    element = driver.find_element_by_name(name)
    return element

實際上,只要改一下這個 get_name的公共方法就可以,而不用去修改所有代碼,慶幸。

改進(jìn)

上帝為你關(guān)上一扇門,必然為你打開一扇。同樣appium也是如此,為你移除一種定位方式,必然有另一種定位方式可以代替他,遂轉(zhuǎn)向萬能的xpath。


image.png

xpath語法

簡單了解一下xpath語法,主要有如下表達(dá)式:

表達(dá)式 描述
nodename 選擇節(jié)點的所有子節(jié)點
/ 從根節(jié)點選取
// 從匹配選擇的當(dāng)前節(jié)點選擇文檔中的節(jié)點,而不考慮它們的位置
. 選取當(dāng)前節(jié)點
.. 選取當(dāng)前節(jié)點的父節(jié)點
@ 選取屬性
常用通配符
通配符 描述
* 匹配任何元素節(jié)點
@* 匹配任何屬性節(jié)點
node() 匹配任何類型的節(jié)點

對于上圖的text元素我們就可以寫成:

//*[@text='通訊錄']

更嚴(yán)謹(jǐn)點,可以寫成:

//android.widget.TextView[@text='通訊錄']

so,以前的定位方式就改進(jìn)完成了,代碼如下:

def get_name(name):
    '''
    定位頁面text元素
    :param name:
    :return:
    '''
    # element = driver.find_element_by_name(name)
    # return element
    element = driver.find_element_by_xpath("http://*[@text='%s']")%(name)
    return element

問題完美解決

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • ¥開啟¥ 【iAPP實現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 7,311評論 0 17
  • 在使用selenium webdriver進(jìn)行元素定位時,通常使用findElement或findElements...
    不勤奮閱讀 1,705評論 1 3
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,152評論 4 61
  • 錯誤“這個類是不關(guān)鍵價值的關(guān)鍵標(biāo)準(zhǔn)與編碼”是iOS開發(fā)這將導(dǎo)致一個應(yīng)用程序來發(fā)布之時死機的通病。請仔細(xì)閱讀,找出解...
    瀟巖閱讀 2,487評論 1 2
  • 出院回家開始與這個小家伙的磨合期,雖做好了準(zhǔn)備,但好多還是在意料之外的事情發(fā)生,我們做好了出黃疸的準(zhǔn)備,可是沒想到...
    唐唐媽咪is海榮閱讀 362評論 0 0

友情鏈接更多精彩內(nèi)容