日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

【Android】基于Airtest实现大麦网app自动抢票程序

發布時間:2024/1/8 Android 154 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Android】基于Airtest实现大麦网app自动抢票程序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

0x01 緣起

疫情結束的2023年5月,大家對出去玩都有點瘋狂,歌手們也扎堆開演唱會。但演唱會多,票一點也不好搶,搶五月天的門票難度不亞于買五一的高鐵票。所以想嘗試找一些腳本來輔助搶票,之前經常用selenium和request做一些小爬蟲來搞定自動化的工作,所以在 MakiNaruto/Automatic_ticket_purchase 的基礎上改了改,實現搶票功能。但是大麥網實在太狡猾了,改完爬蟲才發現幾乎所有的熱門演唱會只允許在app購買,所以就需要利用APP實現接口自動化。

0x02 Airtest自動化測試

首先想到的是利用對UI的操作實現此功能,目前比較流行的框架是網易的poco和appium,對比了一下發現poco比較簡單好上手,而且也基于python語法,因此筆者選擇了此框架。

運行環境搭建

  • Airtest IDE: poco運行基于網易的Airtest IDE,官網下載解包安裝即可
  • adb調試: 打開安卓手機的設置中開發者選項的usb調試功能。對于小米和華為手機,還應當允許通過USB安裝應用。

配置好后,點擊connect即可連接到手機

操作錄制

我認為Airtest IDE最方便的地方莫過于自動分析apk窗口的控件,并錄制操作,生成代碼。如下圖,點擊poco輔助窗的右上角按鈕,即可開始錄制。

此時點擊設備窗的中對應的控件,即可在左側的代碼窗中自動生成代碼。

生成的代碼示例

# 點擊操作 poco("cn.damai:id/project_poster_mask_iv").click() poco("cn.damai:id/rich_text_tv").click() poco("cn.damai:id/tv_left_main_text").click() poco("cn.damai:id/title_back_btn").click()# 滑動操作 poco("cn.damai:id/rich_text_tv").swipe([-0.0254, -0.3666])

除此之外,還可以支持inspector模式。點擊下圖紅色按鈕的部分即可打開inspector,類似chrome瀏覽器控制臺的inspector。然后在設備窗中移動鼠標,并在目標位置點擊右鍵,也可以看到控件的名稱。

inspector模式:

另外,還可以在poco輔助窗中點開窗口的樹結構的節點,分析具體的控件名稱和類型

其他控件操作

  • 等待控件出現。wait(timeout=1),如果控件在timeout時間內出現,則返回控件,否則返回None
  • 如下面的代碼等待sku_contanier出現,如果未出現,則證明本頁面非選擇票檔的頁面:

    if not poco("cn.damai:id/sku_contanier").wait(timeout=1):logger.debug("未在票檔頁")return False
  • 獲取子控件。offspring()用于獲取某控件所有的子孫節點的控件。.child()獲取下級節點。
  • 如:

    # 遍歷控件,返回第一個的item_text節點 poco("cn.damai:id/project_detail_perform_flowlayout").offspring("cn.damai:id/item_text")# 遍歷子節點,并單擊子節點的checkboxfor viewer_widget in poco("cn.damai:id/recycler_view").offspring("cn.damai:id/recycler_main").child():viewer_widget.offspring("cn.damai:id/checkbox").click()
  • 獲取屬性。get_text()用于獲取文字內容,attr()可獲取其他屬性。
  • #獲取tv_tag的文字 tag_str=tv_tag.get_text() # 判斷復選框是否已被選中 viewer_widget.offspring("cn.damai:id/checkbox").attr("checked")
  • 點擊。 click()
  • viewer_widget.offspring("cn.damai:id/checkbox").click()

    代碼開發

    基于上述poco提供的api,即可像搭積木一樣組合出自動化測試工具,實現自動化搶票。
    完整代碼貼在: https://gist.github.com/m2kar/4f4c1cabe047ac77d5ca0a3b35fad4e1

    但本方法需要通過adb和App UI交互,調用的框架較重,因此運行起來很慢,實測需要17s,比人慢很多,因此在實際搶票中不是很實用。

    因此作者又深入分析了大麥網app的接口實現,后續會寫在了博客的 ”[Android逆向] 某麥網搶票接口分析及搶票工具開發“ 文章中。

    參考

    更多poco操作可以參考官方文檔: https://airtest.doc.io.netease.com/tutorial/3_Poco_introduction/

    歡迎star我的GitHub,博客文章默認在GitHub首發。

    本文章原鏈接: https://github.com/m2kar/m2kar.github.io/issues/20

    總結

    以上是生活随笔為你收集整理的【Android】基于Airtest实现大麦网app自动抢票程序的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 精品伦理一区二区 | 极品色av影院 | 日韩精品在线一区二区 | 欧美成人免费在线观看视频 | 黑人黄色录像 | 国产亚洲一区二区三区不卡 | 无套在线观看 | 欧美生活一级片 | 精品无码人妻一区二区三 | 亚洲精品一级 | 亚洲精品一区二区口爆 | 九九色网 | 精品国产乱码久久久久久鸭王1 | 精品一区电影国产 | 五月婷婷综合网 | 日韩不卡在线 | 伊人久久大香线蕉成人综合网 | 香蕉久久av | 三浦惠理子aⅴ一二三区 | 国产超碰在线观看 | 免费看a级片| 天天射寡妇射 | 18岁毛片 | 亚洲欧美激情另类 | 四虎伊人 | 国产精品亚洲精品 | 97久久久久久 | 日韩免费福利视频 | 亚洲综合第一页 | 日韩aa视频 | 国产综合精品视频 | 波多野结衣视频免费观看 | 米奇狠狠干| 操欧美美女 | 无套中出丰满人妻无码 | 天天射影院| 美女交配 | yes4444视频在线观看 | 一起操在线 | 亚洲性影院 | 婚后打屁股高h1v1调教 | 在线免费观看av片 | 亚洲av成人一区二区 | 中文免费在线观看 | 免费在线观看一区二区三区 | 日本二区视频 | 国语播放老妇呻吟对白 | 小泽玛利亚一区二区三区视频 | 美女张开腿让男人操 | 日韩av在线看 | www.香蕉视频.com| 色av吧| 人人澡人人爽 | wwwxxx亚洲 | 九九影院最新理论片 | 女人被狂躁c到高潮 | 天天操天天射天天爱 | 欧美大片免费看 | 亚洲AV无码成人国产精品色 | 欧美成人亚洲 | 一本色道久久综合亚洲 | 亚洲av永久无码精品一区二区国产 | 久久久久成人片免费观看蜜芽 | 另类性姿势bbwbbw | 毛片网站免费观看 | 中文字幕一区二区三区乱码在线 | www.999av| 日韩精品――色哟哟 | 99久久久无码国产精品免费麻豆 | 日韩一级片在线观看 | 日韩视频免费观看高清完整版 | 女生隐私免费看 | 亚洲第一大网站 | 中文字幕第15页 | 日本大尺度吃奶做爰久久久绯色 | 久久久久久久99 | 动漫美女被吸乳奶动漫视频 | 美女扒开腿让男人 | 成人精品久久久 | 免费又黄又爽又猛大片午夜 | 老司机精品视频在线播放 | 欧美综合图片 | 色中色av| 国偷自产av一区二区三区麻豆 | 麻豆精品91 | 少妇做爰免费视看片 | 91传媒视频在线观看 | 91在线国产观看 | 欧美 日韩 国产 精品 | 男人日女人逼 | 精品国产伦一区二区三 | 手机看黄色 | 日韩欧美国产高清91 | 欧美一区,二区 | 丰满少妇麻豆av苏语棠 | 午夜精品久久99蜜桃的功能介绍 | 热热热热色 | 五月婷婷丁香在线 | 操碰97|