2.Python+uiautomator2登錄考研幫

環(huán)境配置可以參考:https://github.com/openatx/uiautomator2

1.啟動夜神模擬器

不要開啟各種安全衛(wèi)士,不然夜神模擬器會莫名其妙的卡在99%處腺毫。將夜神模擬器改成手機(jī)版,一般默認(rèn)是平板摸袁。


2.在cmd下輸入:adb devices查看已連接設(shè)備。

正常情況下义屏,會有如下輸出靠汁,如果沒有,測試下adb有沒有加入到環(huán)境變量闽铐,在cmd里輸入adb蝶怔,或者adb version,是否報(bào)錯兄墅。


3.在cmd下輸入:python -m weditor

它會自動在瀏覽器打開一個窗口


Weditor旁邊默認(rèn)是Android踢星,如果不是,改回Android隙咸,往右填寫的是ip地址和端口號斩狱,如果是模擬器,就填寫第二步adb devices輸出的那個地址和端口扎瓶。點(diǎn)一下連接,如連接成功泌枪,旁邊會顯示稻穗概荷。灰色框里會出現(xiàn)夜神的界面碌燕。如果灰色框內(nèi)手機(jī)界面是黑屏误证,可以在模擬器里打開強(qiáng)制渲染,然后reload下Weditor修壕;如果還不行愈捅,重啟夜神模擬器;如果還不行慈鸠,執(zhí)行下圖框內(nèi)動作蓝谨。關(guān)于黑屏的以上不分先后,可循環(huán)多次執(zhí)行青团。在渲染開啟后如果黑屏消失譬巫,可以關(guān)了渲染。(下圖來自:github)

4.pycharm進(jìn)場

首先看下是否連接:



有信息輸出督笆,說明連接成功了芦昔。

5.獲取app名稱


上圖右側(cè)這些鍵值對都可以使用,這里先使用最簡單的位置信息娃肿,將下面的位置代碼復(fù)制一下并執(zhí)行也可以使用xpath(d.xpath("http://android.widget.TextView[@text='考研幫']").click())

import uiautomator2 as u2
d = u2.connect('127.0.0.1:62001')
d.click(0.482, 0.532)
print(d.info)

將會看到考研幫APP已經(jīng)啟動了



在weditor里reload一下咕缎,讓兩者同步




然后定位下“跳過”的鍵值對珠十,備用。

現(xiàn)在代碼進(jìn)行到跳過這一步了凭豪,代碼如下:

import uiautomator2 as u2
d = u2.connect('127.0.0.1:62001')
d.click(0.482, 0.532)
d(resourceId="com.tal.kaoyan:id/tv_skip").click()

在模擬器里將應(yīng)用的數(shù)據(jù)清除下就可以執(zhí)行上面的代碼了



6.執(zhí)行登錄

和上面類似焙蹭,定位用戶名,密碼墅诡,登錄按鈕壳嚎,執(zhí)行代碼就好。在執(zhí)行之前先清理下應(yīng)用數(shù)據(jù)末早,或者在代碼里面加判斷烟馅。
代碼如下:

# -*- coding: utf-8 -*-
# @AuThor  : frank_lee
import uiautomator2 as u2
d = u2.connect('127.0.0.1:62001')
# d.click(0.482, 0.532)
d.xpath("http://android.widget.TextView[@text='考研幫']").click()
d(resourceId="com.tal.kaoyan:id/tv_skip").click()
d(resourceId="com.tal.kaoyan:id/login_email_edittext").send_keys("starrymusic")
d(resourceId="com.tal.kaoyan:id/login_password_edittext").send_keys("我是密碼")
d(resourceId="com.tal.kaoyan:id/login_login_btn").click()


對于這種跳出的對我們無用的信息,我們需要跳過或叉掉然磷,叉掉前需要加以判斷郑趁,有沒有出現(xiàn)這些元素,如果沒出現(xiàn)而執(zhí)行了該動作勢必會報(bào)錯姿搜。
類比上述步驟寡润,可以使用代碼執(zhí)行登錄,并滑動“休閑空間”某個神奇的板塊
代碼如下:

# -*- coding: utf-8 -*-
# @AuThor  : frank_lee
import uiautomator2 as u2
import time
# 連接模擬器
d = u2.connect('127.0.0.1:62001')
# 打開考研幫
try:
    if d.xpath("http://android.widget.TextView[@text='考研幫']").wait(3):
        d.xpath("http://android.widget.TextView[@text='考研幫']").click()
        time.sleep(2)
except:
    pass
# 點(diǎn)擊跳過頁面
try:
    if d(resourceId="com.tal.kaoyan:id/tv_skip").wait(3):
        d(resourceId="com.tal.kaoyan:id/tv_skip").click()
except:
    pass
try:
    # 實(shí)現(xiàn)登錄
    if d(resourceId="com.tal.kaoyan:id/login_email_edittext").wait(2):
        d(resourceId="com.tal.kaoyan:id/login_email_edittext").send_keys("starrymusic")
        d(resourceId="com.tal.kaoyan:id/login_password_edittext").send_keys("我是密碼")
        time.sleep(1)
        d(resourceId="com.tal.kaoyan:id/login_login_btn").click()
        time.sleep(2)
except:
    pass
try:
    # 下線通知
    if d(resourceId="com.tal.kaoyan:id/tip_commit").wait(3):
        d(resourceId="com.tal.kaoyan:id/tip_commit").click()
        time.sleep(2)
    # 發(fā)現(xiàn)新版本
    if d(resourceId="com.tal.kaoyan:id/view_wemedia_cacel").wait(3):
        d(resourceId="com.tal.kaoyan:id/view_wemedia_cacel").click()
        time.sleep(2)
    # 隱私條款
    if d(resourceId="com.tal.kaoyan:id/tv_agree").wait(3):
        d(resourceId="com.tal.kaoyan:id/tv_agree").click()
        time.sleep(3)
    # 下線通知
    if d(resourceId="com.tal.kaoyan:id/tip_commit").wait(3):
        d(resourceId="com.tal.kaoyan:id/tip_commit").click()
        time.sleep(2)
except:
    pass
try:
    # 點(diǎn)擊下面社區(qū)板塊
    if d(resourceId="com.tal.kaoyan:id/mainactivity_button_forum").wait(3):
        d(resourceId="com.tal.kaoyan:id/mainactivity_button_forum").click()
        time.sleep(0.5)
        d(resourceId="com.tal.kaoyan:id/mainactivity_button_forum").click()
        time.sleep(1)
        # 上面為什么執(zhí)行兩次舅柜,規(guī)避彈出頁
        # 點(diǎn)擊更多板塊
    if d(resourceId="com.tal.kaoyan:id/mainactivity_button_forum").wait(3):
        d(resourceId="com.tal.kaoyan:id/hotthread_recommend_moreforum").click()
        time.sleep(1)
    # 點(diǎn)擊休閑空間
    if d(resourceId="com.tal.kaoyan:id/more_forum_title", text=u"休閑空間").wait(3):
        d(resourceId="com.tal.kaoyan:id/more_forum_title", text=u"休閑空間").click()
        time.sleep(2)
        d(scrollable=True).scroll.to(text="玫瑰初相遇")
    # 點(diǎn)擊'玫瑰初相遇'板塊
    if d.xpath("http://android.widget.TextView[@text='玫瑰初相遇']").wait(3):
        d.xpath("http://android.widget.TextView[@text='玫瑰初相遇']").click()
        time.sleep(3)
        # 執(zhí)行滑動動作梭纹,滑動20次
        i = 0
        while i < 10:
            d(scrollable=True).scroll.toEnd(steps=50)
            time.sleep(2)
            d(scrollable=True).scroll.toEnd(steps=50)
            time.sleep(2)
            i += 1
except:
    pass
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市致份,隨后出現(xiàn)的幾起案子变抽,更是在濱河造成了極大的恐慌,老刑警劉巖氮块,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绍载,死亡現(xiàn)場離奇詭異,居然都是意外死亡滔蝉,警方通過查閱死者的電腦和手機(jī)击儡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蝠引,“玉大人阳谍,你說我怎么就攤上這事×⒅猓” “怎么了边坤?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長谅年。 經(jīng)常有香客問我茧痒,道長,這世上最難降的妖魔是什么融蹂? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任旺订,我火速辦了婚禮弄企,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘区拳。我一直安慰自己拘领,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布樱调。 她就那樣靜靜地躺著约素,像睡著了一般。 火紅的嫁衣襯著肌膚如雪笆凌。 梳的紋絲不亂的頭發(fā)上圣猎,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天,我揣著相機(jī)與錄音乞而,去河邊找鬼送悔。 笑死,一個胖子當(dāng)著我的面吹牛爪模,可吹牛的內(nèi)容都是我干的欠啤。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼屋灌,長吁一口氣:“原來是場噩夢啊……” “哼洁段!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起共郭,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤眉撵,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后落塑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡罐韩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年憾赁,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片散吵。...
    茶點(diǎn)故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡龙考,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出矾睦,到底是詐尸還是另有隱情晦款,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布枚冗,位于F島的核電站缓溅,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏赁温。R本人自食惡果不足惜坛怪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一淤齐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧袜匿,春花似錦更啄、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至怪嫌,卻和暖如春义锥,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背喇勋。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工缨该, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人川背。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓贰拿,卻偏偏與公主長得像,于是被迫代替她去往敵國和親熄云。 傳聞我的和親對象是個殘疾皇子膨更,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評論 2 354