環(huán)境升級(jí)----appium+robotframework適應(yīng)Android API25(platformVersion: 7.0以上)

前言: 因?yàn)锳PP端 使用了 Android API25?

appium 1.4.6使用的Uiautomator無法正常獲取到API25的Android的頁(yè)面欲侮,曾試過修改1.4.6的源碼來嘗試匹配,但是發(fā)現(xiàn)在新增了幾個(gè)函數(shù)后APP登陸頁(yè)面能搞定谆构,后續(xù)頁(yè)面需要增加更多的自定義函數(shù)愁溜,所以放棄這個(gè)方案逼争,改升級(jí)環(huán)境

一卸載并重安裝高版本node

一搓蚪、所需環(huán)境:

下載 node-v10.3.0-x64.msi? 備注:安裝前先卸載老的node

二 安裝appium server 1.81版(編寫文檔時(shí)所在版本):

?1 先在CMD下轉(zhuǎn)到nodejs所在路徑

如果不知道安裝路徑 使用 where node查看


2 安裝appium 如果已有以前安裝的舊版本需要先卸載

npm install -g appium

-g是全局安裝


3 使用以前安裝的appium-doctor 查看環(huán)境是否準(zhǔn)備好


這里報(bào)NODE未安裝時(shí)因?yàn)椋琋ODE是10.3.0的最新版本疼邀,而已安裝的appium-doctor是舊版本無法識(shí)別NODE最新版本喂江,用node -v查看確定環(huán)境正常,忽略這個(gè)報(bào)錯(cuò)

備注: 如果CMD 下 以上命令都無法執(zhí)行旁振,請(qǐng)檢查環(huán)境變量是否設(shè)置?




4 安裝uiautomator-driver和uiautomator2-driver

npm install appium-uiautomator-driver

npm install appium-uiautomator2-driver


成功后在NODEJS文件夾如下路徑 搜索是否存在相關(guān)APK



想知道uiautomator2控制android原理的可以參考https://testerhome.com/topics/9240

5 安裝完畢后 調(diào)用uiautomator2 需要使用到driver的參數(shù)automationName 下面是示例


def Tap():

desired_caps = {}

desired_caps['platformName'] ='Android'

?desired_caps['platformVersion'] ='7.1.1'

?desired_caps['deviceName'] ='192.168.177.101:5555'

?# desired_caps['appPackage'] = 'com.android.email'

# desired_caps['appActivity'] = '.activity.setup.AccountSetupFinal'

?desired_caps['appPackage'] ='com.newhope.smartpig.test1'

?desired_caps['appActivity'] ='com.newhope.smartpig.module.main.LoginActivity'

?desired_caps['automationName'] ='uiautomator2'

?driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)


robotframework上:


open Applicationhttp://localhost:4723/wd/hubplatformName=${Data['platformName']}?? ?platformVersion=${Data['platformVersion']}?? ?deviceName=${Data['deviceName']}?? ?app=${CURDIR}/apk/${Data['app']}?? ?appPackage=com.newhope.smartpig.test1?automationName=uiautomator2?


三 更新robotframework-appiumlibrary 和 Appium-Python-Client

事實(shí)上Appium-Python-Client才是python和Appium的連接庫(kù)获询,robotframework-appiumlibrary只是把Appium-Python-Client 針對(duì)robot ride又封裝了一次

pip install Appium-Python-Client

pip install robotframework-appiumlibrary

如原來有先卸載如pip uninstall? Appium-Python-Client,pip -list查看已安裝的包


四 在robotframework-appiumlibrary源碼添加元素判定函數(shù):

修改D:\Python27\Lib\site-packages\robotframework_appiumlibrary-1.4.6-py2.7.egg\AppiumLibrary\keywords\_element.py(PYTHON安裝路徑)

添加DEF

def is_element_exist(self, locator):

application =self._current_application()

elements =self._element_finder.find(application, locator, None)

return len(elements) >0

用于判斷APP元素是否存在 存在返回True,不存在返回False


或者去http://172.16.10.163:9010/svn/test_code/auto/自動(dòng)化工具/robotframework-appiumlibrary 下載覆蓋在本地python目錄下


添加TEXT判定函數(shù):

位置同上

def is_text_exist(self,text):

text_norm = normalize('NFD', text)

source_norm = normalize('NFD', self.get_source())

return text_normin source_norm

用于判斷TEXT 是否存在 存在返回True,不存在返回False



問題集錦:

1 setuptoolstoo old:

pip install --upgrade setuptools

2 pip安裝時(shí)報(bào)亂七八糟的錯(cuò)誤拐袜, 升級(jí)pip

強(qiáng)制安裝命令 python -m pip install -U --force-reinstall pip

3 appium 調(diào)用的APP超時(shí)時(shí)間太短 (默認(rèn)60秒):

紅色為改為6000秒吉嚣,robot中同樣

def StartAutomator2(platformName, platformVersion, deviceName):

'''

robotframework 當(dāng)前版本調(diào)用uiautomator2有問題蹬铺,需要先在PYTHON調(diào)用PYclient預(yù)先安裝uiautomator2-server到目標(biāo)機(jī)上

'''

?desired_caps = {}

desired_caps['platformName'] =str(platformName)

desired_caps['platformVersion'] =str(platformVersion)

desired_caps['deviceName'] =str(deviceName)

desired_caps['appPackage'] ='com.newhope.smartpig.test1'

?desired_caps['appActivity'] ='com.newhope.smartpig.module.main.LoginActivity'

? desired_caps['automationName'] ='uiautomator2'

? desired_caps['newCommandTimeout'] = '6000'

? driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

time.sleep(3)

driver.close_app()

driver.quit()


robot ride:

open Applicationhttp://localhost:4723/wd/hubplatformName=${Data['platformName']}?? ?platformVersion=${Data['platformVersion']}?? ?deviceName=${Data['deviceName']}?? ?app=${CURDIR}/apk/${Data['app']}?? ?appPackage=com.newhope.smartpig.test1?? ?automationName=uiautomator2?? ?newCommandTimeout=6000

4 node 安裝中報(bào) VCBuild.exe 問題

npm install--global--production windows-build-tools

5 node 安裝中報(bào) node-gyp不是內(nèi)部命令:

npm install--globalnode-gyp

環(huán)境變量中增加C:\Users\Administrator\AppData\Roaming\npm

標(biāo)藍(lán)的為當(dāng)前PC上用戶目錄(可能不是Administrator)

APPIUM本身是用不到gyp的,如果報(bào)這個(gè)實(shí)際是用到reinstall功能甜攀,代表著前面有其他錯(cuò)誤.


6 appium安裝卡在selendroid-standalone-0.17.0-with-dependencies.jar下載:

SVNtool路徑里有selendroid-standalone-0.17.0-with-dependencies.jar包秋泄,建立一個(gè)WWW服務(wù)然后從SVN上下載這個(gè)包 WWW上頂替掉真實(shí)域名具體看

https://download.csdn.net/download/xmlbw/9748944#comment


7 Genymotion無法裝載外部文件


ADB 設(shè)置成使用GENYmotion自帶的


8 最新版本appiumlibrary導(dǎo)入RIDE后報(bào)紅

查看RIDE日志



pip 安裝six(python3.x和2.X的兼容包)

pip install six

也可能是robotframework-seleniumlibrary和selenium2個(gè)API與? APPIUM版本不匹配導(dǎo)致 挨個(gè)PIP安裝


9 如何獲取APP的appPackage和appActivity

1琐馆,打開APP。

2恒序,執(zhí)行> adb logcat>D:/log.txt


3瘦麸, 胡亂的對(duì)APP做一些操作。

4歧胁, Ctrl+c 結(jié)束adb命令滋饲。

5, 打開log.txt文件与帆,搜索:Displayed?


appPackage: ? com.android.messaging

appActivity:.ui.conversationlist.ConversationListActivity


10 ride不打印日志解決

UnicodeDecodeError: 'utf8' codec can't decode byte 0xd0 in position 0: invalid continuation byte


修改RIDE源碼:

Python27\lib\site-packages\robotide\contrib\testrunner\testrunner.py



11 如何查看Android模擬器版本 和API版本:

CMD下獲取系統(tǒng)版本:adb shell getprop ro.build.version.release

獲取系統(tǒng)api版本:adb shell getprop ro.build.version.sdk


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市墨榄,隨后出現(xiàn)的幾起案子玄糟,更是在濱河造成了極大的恐慌,老刑警劉巖袄秩,帶你破解...
    沈念sama閱讀 221,635評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件阵翎,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡之剧,警方通過查閱死者的電腦和手機(jī)郭卫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來背稼,“玉大人贰军,你說我怎么就攤上這事⌒分猓” “怎么了词疼?”我有些...
    開封第一講書人閱讀 168,083評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)帘腹。 經(jīng)常有香客問我贰盗,道長(zhǎng),這世上最難降的妖魔是什么阳欲? 我笑而不...
    開封第一講書人閱讀 59,640評(píng)論 1 296
  • 正文 為了忘掉前任舵盈,我火速辦了婚禮,結(jié)果婚禮上球化,老公的妹妹穿的比我還像新娘。我一直安慰自己筒愚,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評(píng)論 6 397
  • 文/花漫 我一把揭開白布扯再。 她就那樣靜靜地躺著熄阻,像睡著了一般。 火紅的嫁衣襯著肌膚如雪坝初。 梳的紋絲不亂的頭發(fā)上鳄袍,一...
    開封第一講書人閱讀 52,262評(píng)論 1 308
  • 那天拗小,我揣著相機(jī)與錄音哀九,去河邊找鬼。 笑死阅束,一個(gè)胖子當(dāng)著我的面吹牛息裸,可吹牛的內(nèi)容都是我干的沪编。 我是一名探鬼主播,決...
    沈念sama閱讀 40,833評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼宿亡,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼挽荠!你這毒婦竟也來了平绩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,736評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后满败,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體算墨,經(jīng)...
    沈念sama閱讀 46,280評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡净嘀,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評(píng)論 3 340
  • 正文 我和宋清朗相戀三年挖藏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了厢漩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,503評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡柴底,死狀恐怖粱胜,靈堂內(nèi)的尸體忽然破棺而出焙压,到底是詐尸還是另有隱情,我是刑警寧澤涯曲,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布幻件,位于F島的核電站绰沥,受9級(jí)特大地震影響贺待,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜秃臣,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評(píng)論 3 333
  • 文/蒙蒙 一奥此、第九天 我趴在偏房一處隱蔽的房頂上張望得院。 院中可真熱鬧,春花似錦祥绞、人聲如沸蜕径。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)帕识。三九已至遂铡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間扒接,已是汗流浹背钾怔。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留愚臀,地道東北人姑裂。 一個(gè)月前我還...
    沈念sama閱讀 48,909評(píng)論 3 376
  • 正文 我出身青樓炭分,卻偏偏與公主長(zhǎng)得像剑肯,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子师痕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評(píng)論 2 359

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

  • 一胰坟、Appium介紹 Appium是一個(gè)開源的自動(dòng)化測(cè)試工具笔横,其支持iOS和安卓平臺(tái)上的原生的吹缔,基于移動(dòng)瀏覽器的锯茄,...
    Hello桃sir閱讀 27,406評(píng)論 0 30
  • 目錄 安卓主流的自動(dòng)化測(cè)試框架及對(duì)比.................................... 2 ...
    323e134d370d閱讀 2,319評(píng)論 0 7
  • 第一節(jié)安裝Appium Appium官方網(wǎng)站:http://appium.io/ 先安裝node.js晚碾。node....
    DanHei様閱讀 2,348評(píng)論 4 3
  • 昨晚又醉了,才九點(diǎn)鐘左右煮岁,就從醉國(guó)進(jìn)入了夢(mèng)鄉(xiāng)涣易。 再醒來的時(shí)候,01:37步氏,又是一個(gè)清涼的深夜徒爹。寒露前日已過隆嗅,滇南蒙...
    清風(fēng)正涼閱讀 366評(píng)論 0 0
  • 不知道這句話該是個(gè)疑問句還是陳述句,不敢妄自下結(jié)論胖喳,畢竟我對(duì)夢(mèng)想一詞還是十分敬仰的。 這幾天一直都在思考這件事较剃,關(guān)...
    聶屁屁閱讀 455評(píng)論 0 1