APP自動化二

帥氣10足 2022-01-07 23:16:57 阅读数:818

app

appuim自動化的流程

首先要啟動appuim的服務
服務端:
在這裏插入圖片描述
客戶端:
在這裏插入圖片描述

發送post的請求:POST /wd/hub/session
攜帶這些參數
創建這些請求: Calling AppiumDriver.createSession() with args
在5037端口啟動adb服務: Running ‘E:\Download\android-sdk_r24.4.1-windows\android-sdk-windows\platform-tools\adb.exe -P 5037 start-server’
adb的版本可以不填寫,會處理默認的,如果填寫必須寫對。
後面的基本都是adb命令
在這裏插入圖片描述
在這裏插入圖片描述
建立端口轉發:
在這裏插入圖片描述

PC端連接手機端、啟動應用的原理:

在這裏插入圖片描述

2.Android應用基礎知識

2.1App類型介紹

1.Native app 原生的 直接在操作系統上的、性能最强、交互最好、根據系統的底層所有的功能都能實現。缺點:開發成本高、不能跨平臺、更新時比較慢、審核周期和維護成本比較高。
2.Hybrid&webview 混合應用 可跨平臺 、開發成本 調試 成本低一些。
3.web app 手機瀏覽器 比如UC瀏覽器,就是一個網站 好維護。缺點:通知 提醒 動態效果都不能用、體驗感差。
在這裏插入圖片描述
怎麼分辨:
瀏覽器打開的肯定是web瀏覽器
能框住的都是原生的、不能框住的都是web瀏覽器的,之後會有工具直接判斷
在這裏插入圖片描述

2.2包名&類名

packageName :app的唯一身份標識、如果遇到相同的包名 會提示是否覆蓋。

activity: 簡單來說就是一個頁面

activityName 頁面的名字 類名 .開頭

2.3布局和控件

在這裏插入圖片描述
布局:
框架布局:
線性布局:LinearLayout
絕對布局: 采用坐標軸的
相對布局:
錶格布局:

控件:
TextView -文本控件,展示文字
EditText - 編輯框 用於接收用戶的輸入
Button - 按鈕
checkbox - 複選框
imageview- 圖片控件 用來展示圖片

控件上的屬性
index 索引
text 文本屬性
resource-id 控件的資源id 不唯一,有的沒有
在這裏插入圖片描述

3定比特調試工具

3.1 Ui Automator Viewer

這個工具的好處就是特別快 不浪費資源 就相當於獲取截圖
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

3.2 weditor

openatx的子項目
是通過瀏覽器打開

pip install weditor 安裝
weditor 啟動

啟動後的畫面:啟動後在手機上安裝了ATX應用
在這裏插入圖片描述
在這裏插入圖片描述
3.3 Appium Desktop的檢查器會話
如果用weditor啟動後 再回appuim啟動時會報錯、是因為ATX服務在啟動中的狀態,可以手動關了、也可以重啟模擬器。

4.XML

安卓的每一個頁面都是通過一個xml文檔去錶示的
xml 可擴展的標記語言(EXtensible markup language)

錶示數據,用來傳輸,不用來顯示數據

具有自我描述

xml:焦點是數據內容

html: 焦點顯示數據,網頁

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
<?xml version="1.0" encoding="utf-8"?>
<person>
<name name="name">心藍</name>
<age>18</age>
</person>

5. Appium-python-client

5.1 安裝:

pip install appium-python-client

5.2 簡單使用

1、創建一個客戶端,並且要和服務連接
2、需要攜帶capabilities,創建一個會話
3、通過這個會話再去操作其他
from appium import webdriver
# 啟動配置
desired_caps = {

'platformName': 'Android',
'deviceName': 'emulator-5554',
'appPackage': 'com.lemon.lemonban',
'appActivity': '.activity.MainActivity'
}
# 連接服務器並打開應用
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

在控制臺打開不結束程序:
在這裏插入圖片描述

5.3 定比特

id:
resource_id 它不唯一,需要驗證
在這裏插入圖片描述

class name
類名
xpath
Accessibility ID

id com.lemon.lemonban:id/navigation_my
driver.find_element_by_id('com.lemon.lemonban:id/navigation_my').click()
class_name
driver.find_element_by_class_name('android.widget.ImageButton')
Accessibility ID
driver.find_element_by_accessibility_id()
版权声明:本文为[帥氣10足]所创,转载请带上原文链接,感谢。 https://gsmany.com/2022/01/202201072316567293.html