appium應(yīng)用之“獲取元素信息和元素操作”(android)

一庭呜、獲取元素信息

  • get_attribute(name)
    name:元素的屬性名

1. 獲取元素屬性值

  • 獲取元素的text屬性值
    element.text
    element.get_attribute("text")

  • 獲取元素的content-desc屬性值
    element.get_attribute("contentDescription")

  • 獲取元素的text或content-desc屬性值
    element.get_attribute("name")
    若元素的content-desc屬性值不為空時(shí)喷好,則表示獲取content-desc的屬性值颅和;
    若元素的content-desc屬性值為空時(shí)癞蚕,則表示獲取text的屬性值距境;

  • 獲取元素的resource-id屬性值
    element.get_attribute("resourceId")

  • 獲取元素的class屬性值
    element.get_attribute("className")
    element.tag_name

  • 獲取元素的其他屬性
    element.get_attribute("checkable")
    element.get_attribute("selected")
    ......

"""獲取元素text屬性值"""
ele_text1 = element.text
ele_text2 = element.get_attribute("text")                # 查找地點(diǎn)羊苟、公交寂曹、地鐵
""" 獲取元素content-desc屬性值"""
element_desc = element.get_attribute("contentDescription")
"""獲取元素text或content-desc屬性值"""
ele_text_desc = element.get_attribute("name")            # 查找地點(diǎn)、公交衬潦、地鐵
""" 獲取元素的class屬性值"""
ele_class1 = element.get_attribute("className")
ele_class2 = element.tag_name                             # android.widget.TextView
"""獲取元素的clickable屬性值"""
ele_clickable = element.get_attribute("clickable")         # true

2. 判斷元素

  • element.is_displayed()
    判斷元素是否可見斤蔓。若可見則返回True;否則返回False别渔。
  • element.is_selected()
    判斷元素是否被選中附迷。若被選中則返回True惧互;否則返回False哎媚。
  • element.is_enabled()
    判斷元素是否可用。若可用則返回True喊儡;否則返回False拨与。

3. 獲取元素大小

  • element.size
    獲取元素長(zhǎng)度和高度,返回值為字典類型艾猜,key值為width买喧、height
  • element.location
    獲取元素的起始位置坐標(biāo),返回值為字典類型匆赃,key值為x淤毛、y
  • element.rect
    獲取元素的rect數(shù)據(jù),返回值為字典類型算柳,key值為width低淡、height、x瞬项、y
ele_size = element.size
ele_location = element.location
ele_rect = element.rect
print("size:", ele_size)            # size: {'height': 136, 'width': 676}
print("location:", ele_location)    # location: {'x': 154, 'y': 94}
print("rect:", ele_rect)            # rect: {'height': 136, 'width': 676, 'x': 154, 'y': 94}

二蔗蹋、元素操作

1. 元素的點(diǎn)擊、輸入和清除操作

  • element.click()
    模擬控件點(diǎn)擊操作

  • element.send_keys(*value)
    模擬輸入文本到控件
    *value:可以是字符串囱淋、數(shù)字猪杭,也可以是本地文件路徑
    注意1:使用send_keys方法輸入中文時(shí)有時(shí)會(huì)引發(fā)輸入異常(即輸入的文本與預(yù)期文本不一樣),則可通過修改appium自帶的輸入法來解決妥衣。(在啟動(dòng)設(shè)備的desired_capabilities參數(shù)unicodeKeyboard和resetKeyboard鍵值修改為True)
    注意2:測(cè)試完成后記得手動(dòng)將手機(jī)中的輸入法恢復(fù)到默認(rèn)皂吮,否則會(huì)導(dǎo)致手機(jī)輸入法無法使用戒傻。

desired_capabilities['unicodeKeyboard'] = True
表示使用unicode編碼方式發(fā)送字符串
desired_capabilities['resetKeyboard'] = True
表示隱藏鍵盤

  • element.clear()
    清除控件輸入框中內(nèi)容
inputEle= driver.find_element_by_id("android:id/input")
inputEle.click()
inputEle.send_keys("測(cè)試")
inputEle.send_keys(111)
inputEle.clear()

2. 元素下查找下一層級(jí)(元素的子孫)

獲取某個(gè)控件,可通過find_element_by_xpath方法在參數(shù)中添加上下層級(jí)的方式來獲取蜂筹,也可通過元素下再查找元素的方式獲取稠鼻。

  • element.find_element_by_XX()
# networkBar元素下一層級(jí)是android.widget.RelativeLayout控件,再下一層級(jí)是android.widget.TextView控件狂票。
networkBar = driver.find_element_by_xpath("http://*[@resource-id='android:id/list']/android.widget.LinearLayout[3]")
networkBar_grandChild = networkBar.find_element_by_class_name("android.widget.RelativeLayout")\
                                .find_element_by_class_name("android.widget.TextView")
print(networkBar_grandChild.get_attribute("text"))      # 雙卡和移動(dòng)網(wǎng)絡(luò)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末候齿,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子闺属,更是在濱河造成了極大的恐慌慌盯,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,651評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件掂器,死亡現(xiàn)場(chǎng)離奇詭異亚皂,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)国瓮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門灭必,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人乃摹,你說我怎么就攤上這事禁漓。” “怎么了孵睬?”我有些...
    開封第一講書人閱讀 162,931評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵播歼,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我掰读,道長(zhǎng)秘狞,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,218評(píng)論 1 292
  • 正文 為了忘掉前任蹈集,我火速辦了婚禮烁试,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘拢肆。我一直安慰自己减响,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評(píng)論 6 388
  • 文/花漫 我一把揭開白布善榛。 她就那樣靜靜地躺著辩蛋,像睡著了一般。 火紅的嫁衣襯著肌膚如雪移盆。 梳的紋絲不亂的頭發(fā)上悼院,一...
    開封第一講書人閱讀 51,198評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音咒循,去河邊找鬼据途。 笑死绞愚,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的颖医。 我是一名探鬼主播位衩,決...
    沈念sama閱讀 40,084評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼熔萧!你這毒婦竟也來了糖驴?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,926評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤佛致,失蹤者是張志新(化名)和其女友劉穎贮缕,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體俺榆,經(jīng)...
    沈念sama閱讀 45,341評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡感昼,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了罐脊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片定嗓。...
    茶點(diǎn)故事閱讀 39,731評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖萍桌,靈堂內(nèi)的尸體忽然破棺而出宵溅,到底是詐尸還是另有隱情,我是刑警寧澤梗夸,帶...
    沈念sama閱讀 35,430評(píng)論 5 343
  • 正文 年R本政府宣布层玲,位于F島的核電站号醉,受9級(jí)特大地震影響反症,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜畔派,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評(píng)論 3 326
  • 文/蒙蒙 一铅碍、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧线椰,春花似錦胞谈、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至配紫,卻和暖如春径密,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背躺孝。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工享扔, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留底桂,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,743評(píng)論 2 368
  • 正文 我出身青樓惧眠,卻偏偏與公主長(zhǎng)得像籽懦,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子氛魁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容