簡(jiǎn)介
? ? 無(wú)論你在哪里,在做什么都會(huì)遇到很多坑,這些坑有些事別人挖的,有些是自己挖的。別人挖的叫坑人,自己挖的叫自殺,兒子挖的叫坑爹。因此在做app自動(dòng)化道路上也不會(huì)是一帆風(fēng)順的,你會(huì)踩很多坑,這些坑和你就是你死我活的節(jié)奏,不是坑把你埋了,就是你把坑填了。由于咱們都是黃皮膚的中國(guó)人用的大部分都是中文的app,而人家老外都是白皮膚藍(lán)眼睛,用的是英文的APP,人家這個(gè)問題可以忽略。我們卻不可以的,必須面對(duì)的。所以首先宏哥要帶小伙伴們解決中文輸入的問題!?
你能走多遠(yuǎn),取決于你填坑能力有多強(qiáng)
微博上看到一張圖:
?
01
在你的計(jì)劃中,未來(lái)目標(biāo)是清晰可見的,中間一片坦途,只需要稍微用點(diǎn)力,就可以順利達(dá)成。
但實(shí)際上呢?
風(fēng)雨,陡壁,深淵……一路艱難險(xiǎn)阻,到處都是坑,最關(guān)鍵是,目之所及全是困難,連目標(biāo)的影子都看不見!
可以說(shuō)非常形象了!我們的生活不就是這樣嗎?
成長(zhǎng)的路上,總是充滿了各種“坑”,而你能走多遠(yuǎn),取決于你“填坑”的能力有多強(qiáng)。
02
“為什么你總是下班這么晚?”
“因?yàn)橐牡腂ug太多了啊。”
“那為什么跟你同組的其他同事很早就下班了?就你一個(gè)人總是走不了?”
“沒辦法啊,太復(fù)雜的Bug他們改不了,只能我去解決,不然為什么我月薪2萬(wàn),他們只有1萬(wàn)?”
“……好吧?!?
沒錯(cuò),工作中就是這樣。
遇到問題,能解決問題的那個(gè)人,永遠(yuǎn)是最被需要的人,而因?yàn)楸恍枰?,不可或缺,所以才能拿到高薪,獲得更好的個(gè)人發(fā)展。
改不了的Bug,搞不定的客戶,談不下來(lái)的項(xiàng)目……我們習(xí)慣性求助于我們的上級(jí)領(lǐng)導(dǎo),而這似乎也解釋了,為什么他是上級(jí)領(lǐng)導(dǎo)?因?yàn)樗芙鉀Q我們解決不了的問題。
在職場(chǎng),你的核心競(jìng)爭(zhēng)力,在于你“填坑”的能力,是否能填別人填不了的坑。
好了,故事就講到這里吧。言歸正傳,本篇就由宏哥把前邊留有懸念的中文輸入問題的坑,帶著小伙伴們一起把這個(gè)坑填平它,KO它。
宏哥思路:宏哥將會(huì)通過(guò)屏蔽軟鍵盤,繞過(guò)手機(jī)的軟鍵盤方法,解決中文輸入的問題。
1、定位搜索
1、打開淘寶點(diǎn)搜索按鈕,進(jìn)入到搜索頁(yè)面
?
2、然后定位到搜索框后用sendkeys方法輸入“hongge”,這里定位元素用第四篇講的uiautomatorviewer工具就可以了
?
?
3、實(shí)例代碼
4、運(yùn)行后夜神模擬器、appium、代碼的運(yùn)行過(guò)程如下(拼音或者英文),請(qǐng)小伙伴們和宏哥一起仔細(xì)看是不是搜索框輸入了:hongge 拼音
2、運(yùn)行腳本
1、首先要確認(rèn)手機(jī)上的輸入法是用的什么輸入法,如果默認(rèn)是中文的輸入法,啟動(dòng)后會(huì)出現(xiàn)下面情況,無(wú)法輸入成功
? ? 2、于是可以先把手機(jī)上的輸入法改成英文的狀態(tài),這樣就可以輸入英文字符串了。那么問題來(lái)了,如果想輸入中文的字符串呢?如何解決。。。
3、屏蔽軟鍵盤
1、通過(guò)前面的操作,大概可以知道,在APP里面輸入字符串是調(diào)用的軟鍵盤輸入的,有沒辦法像selenium做web自動(dòng)化時(shí)候一樣,直接sendkeys繞過(guò)鍵盤輸入呢?
2、于是可以想辦法屏蔽軟鍵盤,只需在desired_caps{}設(shè)置里面加兩個(gè)參數(shù)( 注意了,注意力,注意力,能不能填坑就看這里?。。?! ),如果直接跟隨宏哥的小伙伴們直接把注釋去掉了,就可以。
?
?
3、unicodeKeyboard是使用unicode編碼方式發(fā)送字符串
4、resetKeyboard是將鍵盤隱藏起來(lái)
4、輸入中文字符
1、將上面代碼改成輸入中文u“北京-宏哥”,然后運(yùn)行腳本,在手機(jī)上查看結(jié)果。(python2中文前面要加個(gè)u,python3的可以忽略)
2、運(yùn)行后夜神模擬器、appium、代碼的運(yùn)行過(guò)程如下:請(qǐng)小伙伴們和宏哥一起仔細(xì)看是不是搜索框輸入了:北京-宏哥? 中文漢字
?
5、參考代碼
# coding=utf- 8 # 1 .先設(shè)置編碼,utf- 8可支持中英文,如上,一般放在第一行 # 2 .注釋:包括記錄創(chuàng)建時(shí)間,創(chuàng)建人,項(xiàng)目名稱。 ''' Created on 2019 - 7 - 04 @author: 北京 -宏哥 QQ交流群: 707699217 Project:學(xué)習(xí)和使用appium自動(dòng)化測(cè)試 -輸入中文 - 一次填坑記 ''' # 3 .導(dǎo)入模塊 from appium import webdriver import time desired_caps = {} desired_caps[ ' platformName ' ] = ' Android ' #android的apk還是IOS的ipa desired_caps[ ' platformVersion ' ] = ' 8.0 ' #android系統(tǒng)的版本號(hào) desired_caps[ ' deviceName ' ] = ' 127.0.0.1:62001 ' #手機(jī)設(shè)備名稱,通過(guò)adb devices 查看 desired_caps[ ' appPackage ' ] = ' com.taobao.taobao ' #apk的包名 desired_caps[ ' appActivity ' ] = ' com.taobao.tao.welcome.Welcome ' #apk的launcherActivity desired_caps[ ' unicodeKeyboard ' ] = True #使用unicodeKeyboard的編碼方式來(lái)發(fā)送字符串 desired_caps[ ' resetKeyboard ' ] = True #將鍵盤給隱藏起來(lái) driver = webdriver.Remote( ' http://127.0.0.1:4723/wd/hub ' , desired_caps) #啟動(dòng)服務(wù)器地址,后面跟的是手機(jī)信息 # 休眠五秒等待頁(yè)面加載完成 time.sleep( 5 ) driver.find_element_by_id( " com.taobao.taobao:id/home_searchedit " ).click() time.sleep( 3 ) driver.find_element_by_id( " com.taobao.taobao:id/searchEdit " ).click() driver.find_element_by_id( " com.taobao.taobao:id/searchEdit " ).send_keys(u " 北京-宏哥 " )
6、小結(jié)
1、如果在輸入中文的時(shí)候,手機(jī)遇到顯示中文字符為亂碼時(shí):
2、解決辦法:前面加上“#-* -coding:gb18030-* -” 如下圖所示:
3、還原設(shè)置
(1)當(dāng)運(yùn)行上面的腳本后,發(fā)現(xiàn)手動(dòng)去輸入時(shí)候,無(wú)法調(diào)出軟鍵盤了,如何恢復(fù)呢?
(2)打開手機(jī)設(shè)置,找到輸入法設(shè)置選項(xiàng),會(huì)發(fā)現(xiàn)默認(rèn)的輸入法被改成appium的輸入法了。所以只需把這里的設(shè)置,恢復(fù)成原來(lái)輸入法就OK拉。
在實(shí)現(xiàn)目標(biāo)的路上,遇到坑很正常,比臨坑痛哭更重要的是,學(xué)會(huì)把坑填好,繼續(xù)走下去。最后祝各位小伙伴們填坑順利,人人都是填坑小能手!??!
您的肯定就是我進(jìn)步的動(dòng)力。 支持宏哥的朋友們和宏哥的宏粉記得點(diǎn)波? 推薦 ? 哦?。。?
個(gè)人公眾號(hào)
微信群
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
