appiun環境安裝配置及與python結合使用

環境準備

1.環境安裝

網盤下載

需要安裝的4個東西都放這了,也可以去網上自行下載:網盤地址

1. 安裝android-sdk-windows

下載完成後解壓,點擊SDK Manager.exe安裝連接安卓的tools
目錄

手機是哪個版本的Android就下載哪一個,我這裏是Android9,其他的不用選,選中之後點右下角的Install(注:下載巨耗時,不要下錯嘍)
下載工具

2. 安裝jdk

一路next即可,記住安裝位置

3. 安裝nodejs

版本不宜過高,否則appium無法啓動

4. 安裝appium

雙擊exe直接安裝

2.環境配置

環境變量中的地址都爲你自己實際安裝的地址。

  1. 配置android-sdk-windows環境變量(系統變量)
變量
ANDROID_HOME F:\android-sdk-windows
path %ANDROID_HOME%\platform-tools
path %ANDROID_HOME%\tools
  1. 配置java環境變量
變量
CLASSPATH %JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;
JAVA_HOME F:\jdk(jdk安裝目錄)
path %JAVA_HOME%\jre\bin
path %JAVA_HOME%\bin
  1. nodejs環境變量
變量
path F:\nodejs(nodejs安裝目錄)

appium使用

確保手機打開開發者模式以及USB調試,adb devices命令可以看到設備,如下:設備

  1. 打開appium
    appium桌面圖標
    打開如下:appium界面
    若環境變量配置無誤,可直接Start Server
    開啓服務

  2. 代碼連接手機應用

from appium import webdriver


desired_caps = {}
desired_caps['platformName'] = 'Android'  # 手機系統
desired_caps['platformVersion'] = '9'  # 手機系統版本,我的爲Android 9
desired_caps['deviceName'] = 'MI 9'  # 設備名,着實填寫
desired_caps['appPackage'] = 'com.ss.android.article.news'  # app包名,這個爲"今日頭條"
desired_caps['appActivity'] = 'com.ss.android.article.news.activity.SplashBadgeActivity'  # app入口
desired_caps["noReset"] = "True"  # 不初始化手機app信息,不添加此項每次執行程序都是手機第一次打開app的情形

# 訪問服務接口,並啓動手機app。url參數是當appium啓動後,默認訪問服務地址和接口
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps) 

執行以上代碼可以看到手機上“今日頭條”應用自動打開。

注:第一次執行appium會在手機中安裝“Appium Settings”,需要手機允許“通過USB安裝應用”,例如我的小米手機需要打開“開發者選項”下的“USB調試”、“USB安裝”以及“USB調試(安全設置)”

  1. 定位元素

定位元素的方法參考:
方法

  1. 提取信息
from appium import webdriver


desired_caps = {}
desired_caps['platformName'] = 'Android'  # 手機系統
desired_caps['platformVersion'] = '9'  # 手機系統版本,我的爲Android 9
desired_caps['deviceName'] = 'MI 9'  # 設備名,着實填寫
desired_caps['appPackage'] = 'com.ss.android.article.news'  # app包名,這個爲"今日頭條"
desired_caps['appActivity'] = 'com.ss.android.article.news.activity.SplashBadgeActivity'  # app入口
desired_caps["noReset"] = "True"  # 不初始化手機app信息,不添加此項每次執行程序都是手機第一次打開app的情形

# 訪問服務接口,並啓動手機app。url參數是當appium啓動後,默認訪問服務地址和接口
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

results = driver.find_elements_by_id("com.ss.android.article.news:id/uy")  # 當前一屏的所有新聞
for item in results:
    title = item.find_elements_by_id("com.ss.android.article.news:id/title")  # 每一條新聞的標題元素
    title = title[0].text if title else ''  # 標題內容
    print(title)

這樣,標題就打印出來了
執行結果
可以寫一個模擬上滑的操作,然後將代碼寫在循環中,這樣就可以一直採集。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章