Appium自動化測試框架1

電腦的瀏覽器 手機的瀏覽器 手機上的app

原生的應用 純java 手機上的app apk

移動網頁應用 純HTML CSS 手機的瀏覽器上 電腦的瀏覽器上

混合應用 java html css

python代碼 Appium python庫 Appium 手機

都是代表本機

0.0.0.0

127.0.0.1

localhost

如何啟動app

啟動參數

安卓的版本

設置里面 關于本機

adb shell dumpsys window windows | findstr mCurrentFocus
adb shell dumpsys activity | find "mFocusedActivity"
都可以用來找包名和界面名
from appium import webdriver
import time# 啟動一個字典 包裝相應的啟動參數
desired_caps = dict()# 平臺的名字,安卓還是IOS 大小寫無所謂
desired_caps['platformName'] = 'Android'# 平臺的版本,(5.4.3 可以寫 5.4.3 5.4 5)
desired_caps['platformVersion'] = '7.1.2'# 設備的名字,隨便寫,不能亂寫
desired_caps['deviceName'] = 'samsung'# 要打開的應用程序 包名
desired_caps['appPackage'] = 'com.android.settings'# 要打開的界面 啟動名 界面名
desired_caps['appActivity'] = '.Settings'# 連接appium服務器
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)time.sleep(3)driver.quit()

如何通過代碼跳轉到其它app

from appium import webdriver
import time# 啟動一個字典 包裝相應的啟動參數
desired_caps = dict()
# 平臺的名字,安卓還是IOS 大小寫無所謂
desired_caps['platformName'] = 'Android'
# 平臺的版本,(5.4.3 可以寫 5.4.3 5.4 5)
desired_caps['platformVersion'] = '7.1.2'
# 設備的名字,隨便寫,不能亂寫
desired_caps['deviceName'] = 'samsung'
# 要打開的應用程序 包名
desired_caps['appPackage'] = 'com.android.settings'
# 要打開的界面 啟動名 界面名
desired_caps['appActivity'] = '.Settings'# 連接appium服務器
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)time.sleep(3)# 包名 界面名
driver.start_activity('com.android.Calendar','com.android.Calendar.ui.activity.MainActivity')time.sleep(3)driver.quit()

獲取app的包名和界面名

from appium import webdriver
import time# 啟動一個字典 包裝相應的啟動參數
desired_caps = dict()
# 平臺的名字,安卓還是IOS 大小寫無所謂
desired_caps['platformName'] = 'Android'
# 平臺的版本,(5.4.3 可以寫 5.4.3 5.4 5)
desired_caps['platformVersion'] = '7.1.2'
# 設備的名字,隨便寫,不能亂寫
desired_caps['deviceName'] = 'samsung'
# 要打開的應用程序 包名
desired_caps['appPackage'] = 'com.android.settings'
# 要打開的界面 啟動名 界面名
desired_caps['appActivity'] = '.Settings'# 連接appium服務器
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)# 輸出當前程序的包名
print(driver.current_package)
# 輸出當前程序的界面名
print(driver.current_activity)# 包名 界面名
driver.start_activity('com.android.Calendar','com.android.Calendar.ui.activity.MainActivity')# 輸出當前程序的包名
print(driver.current_package)
# 輸出當前程序的界面名
print(driver.current_activity)driver.quit()
com.android.settings
.Settings
com.android.Calendar
.ui.activity.MainActivity

關閉所有關聯的app 由driver啟動的那些app

driver.close_app

print(driver.current_package)

不會報錯 com.android.launcher3 //home

driver.quit() 關閉驅動對象

print(driver.current_package)

所以會報錯

安裝和卸載以及是否安裝app

from appium import webdriver
import time
# 啟動一個字典 包裝相應的啟動參數
desired_caps = dict()
# 平臺的名字,安卓還是IOS 大小寫無所謂
desired_caps['platformName'] = 'Android'
# 平臺的版本,(5.4.3 可以寫 5.4.3 5.4 5)
desired_caps['platformVersion'] = '7.1.2'
# 設備的名字,隨便寫,不能亂寫
desired_caps['deviceName'] = 'samsung'
# 要打開的應用程序 包名
desired_caps['appPackage'] = 'com.android.settings'
# 要打開的界面 啟動名 界面名
desired_caps['appActivity'] = '.Settings'# 連接appium服務器
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)if driver.is_app_installed('com.example.jcy.wvtest'):driver.remove_app('com.example.jcy.wvtest')
else:driver.install_app('D:\WORK\wv.apk')

將應用置于后臺

模擬home鍵 將應用放置后臺中

from appium import webdriver
import time
# 啟動一個字典 包裝相應的啟動參數
desired_caps = dict()
# 平臺的名字,安卓還是IOS 大小寫無所謂
desired_caps['platformName'] = 'Android'
# 平臺的版本,(5.4.3 可以寫 5.4.3 5.4 5)
desired_caps['platformVersion'] = '7.1.2'
# 設備的名字,隨便寫,不能亂寫
desired_caps['deviceName'] = 'samsung'
# 要打開的應用程序 包名
desired_caps['appPackage'] = 'com.android.settings'
# 要打開的界面 啟動名 界面名
desired_caps['appActivity'] = '.Settings'# 連接appium服務器
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)# 進入后臺5秒 再回到前臺
# 用于將當前應用程序在設備上置于后臺5秒,然后再將其切換回前臺。
driver.background_app(5)time.sleep(2)driver.quit()

熱啟動 :進入后臺回到前臺?

冷啟動:關機再開 這種切斷電源的行為

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/40794.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/40794.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/40794.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

土壤養分化驗儀:農業生態與可持續發展

隨著現代農業技術的不斷進步,土壤養分化驗儀在農業生產中扮演著越來越重要的角色。這款高科技設備以其高精度、高效率的特點,為農業生態與可持續發展提供了強有力的支撐。 一、農田土壤監測與管理 農田是土壤養分化驗儀最主要的應用場所。通過對農田土壤…

【AI】DeepStream(14):圖像分割deepstream-segmentation-test示例演示

【AI】AI學習目錄匯總 1、簡介 deepstream-segmentation-test示例演示了圖像的語義分割。兩個配置文件,分別加載U-Net和Res-UNet兩種分割模型 unet_output_graph.uffunetres18_v4_pruned0.65_800_data.uffU-Net是一個在生物醫學圖像分割領域廣泛應用的卷積神經網絡(CNN),…

集團型企業組織架構復雜,業務線多,如何進行高效費用管控?

企業管理中流行這樣一句話:“企業轉型,財務先行”。對集團型企業而言,當今的發展形勢下,通過財務戰略全面轉型、最終撬動企業價值提升,是一件難而正確的事情。 集團企業具有經營規模大、產業鏈多、分支機構多、地域跨度…

地下電子標識器探測儀ED8000選型注意事項

ED8000探測儀是一臺集成了多頻率、多種ID標識器調制模式、高低靈敏度調節、可讀寫標識器等全功能、高性能電子標識器探測儀。它有著極高的靈敏度,同時具備良好的噪聲抑制能力,不僅適合專業測繪人員,普通操作人員也可以輕松掌握。 ED8000可支持模擬電子標…

洛谷 P1042 [NOIP2003 普及組] 乒乓球

洛谷 P1042 [NOIP2003 普及組] 乒乓球 題目背景 國際乒聯現在主席沙拉拉自從上任以來就立志于推行一系列改革,以推動乒乓球運動在全球的普及。其中 11 11 11 分制改革引起了很大的爭議,有一部分球員因為無法適應新規則只能選擇退役。華華就是其中一位…

2024亞洲國際餐飲展覽會(北京餐飲展|火鍋展|預制菜展會)

2024北京餐飲展會,2024北京食材展會,2024北京火鍋展會,2024北京火鍋食材展會,2024北京預制菜展會,2024北京預制食材展會, 2024亞洲國際餐飲展覽會(北京餐飲展|火鍋展|預制菜展會) …

【C語言】刷題筆記 Day2

【筆記】 【1】局部變量不初始化,默認放的隨機值。 1 int n0; 2 scanf("%d",&n); //13.141 【2】這里雖然輸入的是一個浮點數,但是只取整數部分。 【3】3.156e7 表示的是3.156*10的7次方。 【4】多組輸入,保存和不保存…

基于 Windows Server 2019 部署域控服務器

文章目錄 前言1. 域控服務器設計規劃2. 安裝部署域控服務器2.1. 添加 Active Directory 域服務2.2. 將服務器提升為域控制器2.3. 檢查域控服務器配置信息 3. 管理域賬號3.1. 新建域管理員賬號3.2. 新建普通域賬號 4. 服務器加域和退域4.1. 服務器加域操作4.2. 服務器退域操作 總…

Iperf基本用法

Iperf是一款開源的網絡性能測試工具,它可以用來測量網絡帶寬、延遲、抖動和數據包丟失等網絡性能指標。Iperf支持TCP和UDP協議,可以用于點對點或客戶端-服務器等模式的網絡測試。 安裝Iperf 在Linux系統中,您可以使用包管理器安裝Iperf。例如…

記錄一下簡單導入導出excel二級表頭

數據庫導入導出表頭 之前的工具類GenerateExcelToFile新增兩個導出這種二級表頭方法 package com.njry.utils;import cn.hutool.core.util.IdUtil; import com.njry.config.FileProperties; import com.njry.exception.BadRequestException; import org.apache.poi.hssf.user…

OpenGL的學習之路

Qt如何創建OpenGL的渲染窗口? 類比GLFW庫,Qt提供了OpenGL的渲染窗口類QOpenGLWidget: 1、重寫initializeGL()和resizeGL()函數來設置OpenGL狀態并提供透視圖轉換。 2、重寫paintGL()來繪制3D場景,只調用OpenGL函數。 3、還可以…

python 基礎綜合應用——小開發

#python 基礎綜合應用——小開發 綜合復習 變量- 循環- 函數- 模塊 開發 名片管理系統 名片管理系統介紹 名片管理系統可以理解成花名冊軟件,通過個人新建人的信息后可以進行查詢等簡單操作的程序 名片管理系統有三個作用, 1.新建名片 2.顯示全部名…

【設計模式】裝飾者模式里Java實現

插: AI時代,程序員或多或少要了解些人工智能,前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家(前言 – 人工智能教程 ) 堅持不懈,越努力越幸運,大家…

【VIM的使用】

Vim 是一個非常強大的文本編輯器,尤其在 Linux 環境下被廣泛使用。它基于 vi 編輯器開發而來,增加了許多功能和改進。下面是一個簡化的 Vim 教程,幫助你快速上手: 啟動 Vim 要啟動 Vim,只需在終端中輸入 vim [filen…

Leetcode刷題2---兩數相加 Python

目錄 題目及分析解法一: 迭代法解法二: 遞歸法解法三:反轉鏈表法 題目及分析 (力扣序號2:兩數相加) 給你兩個非空的鏈表,表示兩個非負的整數。它們每位數字都是按照逆序的方式存儲的,并且每個節點只能存儲…

python之音頻處理(2)兩個音頻文件的合并

from pydub import AudioSegment# 加載兩個音頻文件 audio1 AudioSegment.from_file(r"D:\websiteDownload\huanxing.wav") audio2 AudioSegment.from_file(r"D:\websiteDownload\我今天被一件事情搞得很煩.wav")# 設置間隔(單位:…

Altium Designer專業PCB設計軟件下載安裝 Altium Designer安裝包下載獲取

在電子設計的廣袤領域中,PCB設計無疑占據著重要的地位。而Altium Designer作為一款業界領先的電子設計自動化軟件,其提供的先進布局工具,無疑為設計師們打開了一扇通往高效、精確設計的大門。 在PCB設計的核心環節——布局中,Alti…

初學Spring之自動裝配 Bean

Bean 的作用域: 1.單例模式(Spring 默認機制) scope“singleton” 2.原型模式:每次從容器中 get 時,都會產生一個新對象 scope"prototype" 3. request、session、application,只能在 web 開…

《c語言結構體怎么函數傳參》

在C語言中,結構體(struct)是一種用戶自定義的數據類型,用于組合多個不同類型的數據成員。當你要將結構體作為參數傳遞給函數時,可以按照以下幾種方式進行: 值傳遞(Pass by Value)&a…

【pytorch擴展】CUDA自定義pytorch算子(簡單demo入手)

Pytorch作為一款優秀的AI開發平臺,提供了完備的自定義算子的規范。我們用torch開發時,經常會因為現有算子的不足限制我們idea的迸發。于是,CUDA/C自定義pytorch算子是不得不磕了。 今天通過一個小實驗來梳理自定義pytorch算子都需要做哪些準…