你的【ID】呢?

寫在前面

本文講述的是【如何給動(dòng)態(tài)生成的控件添加id】涛目,像那種直接在xml配置id的高級(jí)操作秸谢,我是介紹不來(lái)的,請(qǐng)見諒霹肝。不需要前戲的朋友估蹄,請(qǐng)直接查看第四點(diǎn)

一、背景

自從公司使用【appium】做自動(dòng)化測(cè)試以后沫换,別提測(cè)試組的同事有多高興了臭蚁,給人一種【媽媽再也不用擔(dān)心我按壞公司的設(shè)備,賠不起錢了】的既視感讯赏。(ps:公司的設(shè)備是以 W 為單位的)

1垮兑、簡(jiǎn)單介紹自動(dòng)化測(cè)試

appium】簡(jiǎn)單來(lái)說(shuō)就是一個(gè)自動(dòng)化測(cè)試的工具,和其他自動(dòng)化測(cè)試工具操作流程一致:
(1)根據(jù)控件id或者text等屬性來(lái)定位到控件
(2)然后模擬觸發(fā)一些點(diǎn)擊漱挎,滑動(dòng)等事件
(3)根據(jù)預(yù)期的結(jié)果和實(shí)際的結(jié)果做比較甥角,得出結(jié)論

二、翻車現(xiàn)場(chǎng)

在了解了自動(dòng)化測(cè)試的基本流程后识樱,就知道自動(dòng)化測(cè)試前題是【定位到具體的控件】嗤无,因此我需要給所有的控件【添加對(duì)應(yīng)的id】。在一頓猛如虎的操作后怜庸,排查了所有沒帶id的控件后当犯,我把打包好apk(沒問題.apk)給測(cè)試組同事做測(cè)試,并說(shuō)道【可以了割疾,有問題過(guò)來(lái)找我嚎卫,不過(guò)應(yīng)該沒什么問題的】。

····陷入摸魚狀態(tài)中,無(wú)法自拔····

老哥拓诸,你的這個(gè)控件沒有id呢】猛的把我從魚塘中拉回來(lái)侵佃,心里碎碎念道“我那才吃過(guò)一口的老干媽怎么還沒人購(gòu)買,這還是99新的呢”奠支。

不應(yīng)該啊馋辈,我剛剛都排查了一遍,我看看】倍谜。又是一波瘋狂輸出后迈螟,納尼,居然是[onClick]的鍋尔崔,原來(lái)是某些[Button]答毫,當(dāng)初設(shè)置點(diǎn)擊事件時(shí),采用的【在xml文件添加onClick屬性的方法季春,怪不得沒有id洗搂,我還能在界面上點(diǎn)擊

問題不大,馬上就好】于是我又排查了一遍帶onClick的button后载弄,把第二個(gè)apk(絕對(duì)沒問題.apk)發(fā)了他蚕脏,并寫到【這次改完后絕對(duì)沒問題了,有問題你也別來(lái)找我了侦锯,我去找你吧

····我那喝過(guò)一口的冰闊樂怎么還沒人買驼鞭,才0.5元啊,咸魚真不好做····

“咳咳咳..電腦OA傳來(lái)一陣通知聲音”尺碰,是剛剛的測(cè)試同事發(fā)來(lái)的信息【過(guò)來(lái)

挣棕??亲桥?洛心??L馀瘛4噬怼!7丁7ㄑ稀!
就兩個(gè)字葫笼,什么時(shí)候測(cè)試的朋友也這么大架子了I钇 !B沸恰K萁帧!
不就平時(shí)寫的bug有點(diǎn)多,讓你們跟著加班十幾次而已3饰簟;拥取!堤尾!
起身過(guò)去肝劲,手上默默拿起“50cm長(zhǎng)的戒尺”(這把尺子說(shuō)來(lái)話長(zhǎng),不為人知的1cm哀峻,一把辛酸淚涡相,有機(jī)會(huì)再描述)

我:【請(qǐng)問有什么問題哲泊?】(你們以為我會(huì)態(tài)度不好剩蟀,不可能的,我是經(jīng)過(guò)專業(yè)素養(yǎng)培訓(xùn)的切威,一般都會(huì)禮貌待人育特,不會(huì)爆粗,除非真的忍不紫入)
測(cè)試:【這里有一排的按鈕沒有id】
我:【一排缰冤?不可能吧,我看看】
測(cè)試:【把界面截圖喳魏,以及對(duì)應(yīng)的控件詳細(xì)屬性界面顯示給我看】
我:【我c棉浸,真的沒有,還是一排刺彩。那這個(gè)應(yīng)該是列表控件迷郑,列表控件的每一個(gè)item都是沒有id的,這是正常的】
測(cè)試:【不是吧创倔,最外層這個(gè)是LinearLayout嗡害,又不是RecyclerView或者ListView,你別坑我】
我:【我c畦攘,現(xiàn)在的測(cè)試霸妹,對(duì)android基礎(chǔ)知識(shí)掌握這么熟的嗎?是想搶飯碗嗎知押?心里是這么想著叹螟,嘴上只能說(shuō)者‘額,那我回去看看吧’

三台盯、分析處理問題

1首妖、缺少id的原因

放下戒尺,乖乖地去到指定界面的xml布局爷恳,查看有缆,發(fā)現(xiàn)真的是LinearLayouer,但是并沒有看到里面有嵌套什么Button,textView,ImageView之類的控件。然后跳轉(zhuǎn)到指定.java文件棚壁,發(fā)現(xiàn)是通過(guò)new Button(context)杯矩,然后addView到LinearLayout上面的,我滴乖乖

2袖外、解決缺少id的問題

(1)我想將這些動(dòng)態(tài)添加的button史隆,通過(guò)xml布局的方式,移動(dòng)到LinearLayout的標(biāo)簽下面曼验,并且給這些button添加id泌射。但想法是好的,現(xiàn)實(shí)是殘忍的鬓照,項(xiàng)目中之所以用動(dòng)態(tài)添加的方式熔酷,就是因?yàn)椤?strong>這些按鈕是需要根據(jù)xml配置文件進(jìn)行配置的,說(shuō)白了豺裆,就是這些按鈕是根據(jù)xml的不同拒秘,動(dòng)態(tài)變化的】(ps:通過(guò)xml配置,動(dòng)態(tài)生成按鈕的思路臭猜,下次有機(jī)會(huì)再解釋)

(2)既然無(wú)法通過(guò)xml布局文件的方式來(lái)處理躺酒,就只能給每個(gè)按鈕動(dòng)態(tài)添加id了。通過(guò)api文檔蔑歌,發(fā)現(xiàn)有一個(gè)setId的方法羹应,里面?zhèn)魅胍粋€(gè)int類型的參數(shù),但是這個(gè)id從哪里來(lái)呢次屠,隨便輸入1.2,3,4嗎园匹?好像隨意了點(diǎn)。根據(jù)平時(shí)的用法帅矗,id都是R.id.xxx這種形式的偎肃,并以此類推R.color.xxx,R.string.xxx浑此,R.drawable.xxx等累颂,得到以下三部曲(這個(gè)三部曲是不是來(lái)的有點(diǎn)容易了?凛俱?)

四紊馏、簡(jiǎn)單三部曲

1、單獨(dú)創(chuàng)建id類型的資源文件

res目錄結(jié)構(gòu)蒲犬,添加了ids.xml文件

2朱监、自定義id值

ids.xml文件中的內(nèi)容

3、使用自定義的id值

可以通過(guò)R.id.xxx訪問自定義的id

需要注意的是原叮,第一點(diǎn)不是必須的赫编。自定義的id值巡蘸,你可以定義在string.xml,或者是color.xml 文件中擂送。我之所以單獨(dú)創(chuàng)建ids.xml文件悦荒,僅僅是為了資源分類合理,養(yǎng)成良好的編碼習(xí)慣嘹吨,不被同事噴搬味,不被上司懟,賞心悅目等等等等蟀拷。

五碰纬、結(jié)束語(yǔ)

我把最后打包的apk(有問題你砍我.apk)發(fā)給了測(cè)試同事,并順道留下一句話【給我往死里測(cè)】问芬,然后默默把OA悦析,QQ,微信下線了愈诚。

下班鐘聲響起她按,【這一天牛隅,終究是愉悅的炕柔,我的努力也得到了回報(bào),我的老干媽和冰闊樂順利被一個(gè)摳腳大漢給回收了媒佣,感謝X袄邸!默伍!】

至于測(cè)試還有沒有問題欢嘿,那是明天的事了,再見R埠A侗摹!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末狸剃,一起剝皮案震驚了整個(gè)濱河市掐隐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌钞馁,老刑警劉巖虑省,帶你破解...
    沈念sama閱讀 217,734評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異僧凰,居然都是意外死亡探颈,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門训措,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)伪节,“玉大人光羞,你說(shuō)我怎么就攤上這事』炒螅” “怎么了狞山?”我有些...
    開封第一講書人閱讀 164,133評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)叉寂。 經(jīng)常有香客問我萍启,道長(zhǎng),這世上最難降的妖魔是什么屏鳍? 我笑而不...
    開封第一講書人閱讀 58,532評(píng)論 1 293
  • 正文 為了忘掉前任勘纯,我火速辦了婚禮,結(jié)果婚禮上钓瞭,老公的妹妹穿的比我還像新娘驳遵。我一直安慰自己,他們只是感情好山涡,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評(píng)論 6 392
  • 文/花漫 我一把揭開白布堤结。 她就那樣靜靜地躺著,像睡著了一般鸭丛。 火紅的嫁衣襯著肌膚如雪竞穷。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,462評(píng)論 1 302
  • 那天鳞溉,我揣著相機(jī)與錄音瘾带,去河邊找鬼。 笑死熟菲,一個(gè)胖子當(dāng)著我的面吹牛看政,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播抄罕,決...
    沈念sama閱讀 40,262評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼允蚣,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了呆贿?” 一聲冷哼從身側(cè)響起嚷兔,我...
    開封第一講書人閱讀 39,153評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎榨崩,沒想到半個(gè)月后谴垫,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,587評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡母蛛,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評(píng)論 3 336
  • 正文 我和宋清朗相戀三年翩剪,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片彩郊。...
    茶點(diǎn)故事閱讀 39,919評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡前弯,死狀恐怖蚪缀,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情恕出,我是刑警寧澤询枚,帶...
    沈念sama閱讀 35,635評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站浙巫,受9級(jí)特大地震影響金蜀,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜的畴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評(píng)論 3 329
  • 文/蒙蒙 一渊抄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧丧裁,春花似錦护桦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至缓呛,卻和暖如春催享,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背强经。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工睡陪, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留寺渗,地道東北人匿情。 一個(gè)月前我還...
    沈念sama閱讀 48,048評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像信殊,于是被迫代替她去往敵國(guó)和親炬称。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評(píng)論 2 354

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