robotframework-appiumLibrary 應用 - 實現 app 自動化

1、安裝appiumLibrary第三方庫

運行pip命令:pip install robotframework-appiumlibrary

若已安裝,需要更新版本可以用命令:pip install -U robotframework-appiumlibrary

2、安裝app自動化環境。

參考我的另外一篇專門app自動化環境安裝的文章:https://www.cnblogs.com/Simple-Small/p/10641854.html

3、利用appiumLibrary完成app功能自動化測試。

第一步:導入AppiumLibrary,設置等待超時時間為20s。

第二步:啟動appium?server。啟動真機或者模擬器(本文中為網易MUMU模擬器)

通過 adb devices 命令檢測 模擬器是否可用。

第三步:利用open application關鍵字,打開模擬器上的 檸檬班app。

這一步實際是:與appium server建立連接,并告訴appium server 要在XX設備上操作XXapp.

本案例中, 要去操作系統為Android,版本為6.0.1的設備上,啟動 檸檬班app。(ps:appium 是同時支持android和ios設備的。)

所以,需要提供 :

  1. 平臺名稱 (platformName=Android)
  2. 平臺版本號 (platformVersion=6.0.1)
  3. 設備名稱 (deviceName=Emulator)
  4. app的包名(app在移動設備上的標識) (appPackage=com.lemon.lemonban)
  5. app的啟動activity (appActivity=com.lemon.lemonban.activity.WelcomeActivity)

除此之外,啟動與app的會話時,官網提供了更多的參數說明。可參考以下官網地址:

http://appium.io/docs/en/writing-running-appium/caps/

4、AppiumLibrary當中元素定位方式
定位策略說明案例
id匹配元素的resourceId屬性id=id=com.lemon.lemonban:id/navigation_tiku
accessibility_id匹配元素的description屬性accessibility_id=button3
android使用UiAutomator框架的元素定位android=UiSelector().description('Apps')
xpath使用xpath表達式定位xpath=//*[@text="nmb"]
class匹配元素的class屬性class=android.widget.TextView
5、AppiumLibrary關鍵字說明

以下列舉部分關鍵字說明:

關鍵字說明
open application打開app應用
close application關閉app并關閉當前的webdriver會話
Quite application關閉app但不關閉當前會話
reset application重置app
remove applicaiton卸載app
get source獲取當前頁面的源碼
get window height獲取當前設置的高
get window width獲取當前設備的寬
get newtwork connections status獲取當前的網絡狀態
Set network connection status設置網絡連接狀態
Hide keyboard隱藏鍵盤
Is keyboard shown鍵盤是否隱藏
get activity獲取當前活躍的activity
swipe滑屏操作
swipe by percent按百分比滑屏操作
get contexts獲取當前所有的contexts
switch to context切換到指定的context
click element點擊元素
input text元素中輸入值
get text獲取元素的文本
get element attribute獲取元素的屬性值
Get element size獲取元素的大小
get element location獲取元素的坐標值
Execute adb shell執行adb命令
switch application切換app
wait activity等待activity加載
### 6、使用案例

最后感謝每一個認真閱讀我文章的人,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走:

?

這些資料,對于【軟件測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴上萬個測試工程師們走過最艱難的路程,希望也能幫助到你!

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

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

相關文章

設計模式探索:策略模式

1. 什么是策略模式(Strategy Pattern) 定義 策略模式(Strategy Pattern)的原始定義是:定義一系列算法,將每一個算法封裝起來,并使它們可以相互替換。策略模式讓算法可以獨立于使用它的客戶端而…

打卡第4天----鏈表

通過學習基礎,發現我的基本功還得需要再練練,思路得再更加清晰明了,這樣子做算法題才能駕輕就熟。每天記錄自己的進步。 一、兩兩交換 題目編號:24 題目描述: 給你一個鏈表,兩兩交換其中相鄰的節點,并返回交換后鏈表的頭節點。你必須在不修改節點內部的值的情況下完成本…

[數據結構] 基于交換的排序 冒泡排序快速排序

標題:[數據結構] 基于交換的排序 冒泡排序&&快速排序 水墨不寫bug (圖片來源于網絡) 目錄 (一)冒泡排序 優化后實現: (二)快速排序 I、實現方法: &#…

opencv環境搭建-python

最近遇到了一些圖像處理的需求,所以需要學習一下opencv,來記錄一下我的學習歷程。 安裝numpy pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy安裝matplotlib pip install -i https://pypi.tuna.tsinghua.edu.cn/simple matplotlib安裝opencv …

ctfshow web入門 web338--web344

web338 原型鏈污染 comman.js module.exports {copy:copy };function copy(object1, object2){for (let key in object2) {if (key in object2 && key in object1) {copy(object1[key], object2[key])} else {object1[key] object2[key]}}}login.js var express …

【ubuntu】掛載新磁盤

1、查看磁盤 sudo fdisk -l#Disk /dev/sdb: 4.0 TiB #Disk model: HNA641010BCF105 #Units: sectors of 1 * 512 512 bytes #Sector size (logical/physical): 512 bytes / 4096 bytes #I/O size (minimum/optimal): 4096 bytes / 4096 bytes #Disklabel type: gpt #Disk id…

python argparse模塊nargs用法

nargs 是 argparse 模塊中用來指定參數的數量的屬性。不同的 nargs 取值有不同的含義,下面是一些常用的用法: nargsNone (默認值):表示該參數只能接收一個值。例如:--foo 123。 nargs?:表示該參數最多接收一個值。如…

gcc/g++的四步編譯

目錄 前言1.預處理(進行宏替換)2.編譯(生成匯編)3.匯編(生成二進制文件)4. 鏈接 (生成可執行文件)a. 動態庫 && 動態鏈接b. 靜態庫 && 靜態鏈接c. 驗證d. 動靜態鏈接…

技術實現路徑怎么寫?(Word項目技術路徑文檔參考)

軟件項目編寫技術實現路徑至關重要,因為它為項目團隊提供了清晰的開發藍圖。這一路徑明確了從項目啟動到交付各階段所需的技術方案、步驟及預期成果,有助于團隊統一認識,確保開發工作有序進行。同時,技術實現路徑有助于識別潛在的…

HetuEngine簡介

目錄 HetuEngine是什么? HetuEngine的特點以及使用場景 特點 使用場景 HetuEngine介紹 結構 近期用到了Hetu,了解下這個工具是起什么作用的。 HetuEngine是什么? 是引擎,設計是為了讓與當前的大數據生態完美融合的引擎&am…

本安防爆手機:危險環境下的安全通信解決方案

在石油化工、煤礦、天然氣等危險環境中,通信安全是保障工作人員生命安全和生產順利進行的關鍵。防爆智能手機作為專為這些環境設計的通信工具,提供了全方位的安全通信解決方案。 防爆設計與材料: 防爆智能手機采用特殊的防爆結構和材料&…

Mysql部署MHA高可用

部署前準備: mysql-8.0.27下載地址:https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.27-1.el7.x86_64.rpm-bundle.tar mha-manager下載地址:https://github.com/yoshinorim/mha4mysql-manager/releases/download/v0.58/mha4mysql-mana…

【Selenium】 使用save_screenshot截圖無法保存圖片

Selenium 使用save_screenshot截圖無法保存 代碼如下 from time import sleep from selenium import webdriver driver webdriver.Chrome() driver.maximize_window() driver.get(http://www.baidu.com) # 截取當前窗口,指定截圖圖片的保存位置 driver.save_scre…

為什么需要做網絡安全服務?

網絡安全服務之所以重要,是因為它在保護數字資產、維護企業運營、確保法規遵從、防范惡意行為以及建立信任等方面扮演著關鍵角色。以下是一些主要的理由: 保護核心資產和數據: 數字化轉型使得企業數據變得極其寶貴,包括知識產權、…

深度學習模型加密python版本

支持加密的模型: # torch、torch script、onnx、tensorrt 、torch2trt、tensorflow、tensorflow2tensorrt、paddlepaddle、paddle2tensorrt 深度學習推理模型通常以文件的形式進行保存,相應的推理引擎通過讀取模型文件并反序列化即可進行推理過程. 這樣一來&#…

數據庫——事務管理

title: 數據庫——事務管理 date: 2024-07-06 11:55:39 tags: 數據庫 categories: 數據庫 cover: /image/T1.jpg description: 數據庫的事務管理的相關知識 事務管理 事務管理是對一系列數據庫操作進行管理的過程,這些操作被視為一個不可分割的工作單元&#xff0…

20K Stars!一個輕量級的 JS 庫

大家好,我是CodeQi! 一位熱衷于技術分享的碼仔。 Driver.js 是一個輕量級的 JavaScript 庫,旨在幫助開發人員創建網站或應用程序的引導和教程。通過 Driver.js,您可以引導用戶了解網站的各個功能和使用方式。 Driver.js 提供了高度可定制的功能,使其能夠適應各種需求和…

寶塔-Linux模板常用命令-centos7

一、寶塔-Linux模板常用命令: 1.停止寶塔 /etc/init.d/bt stop 2.啟動寶塔 /etc/init.d/bt start 3.重啟寶塔 /etc/init.d/bt restart 4.卸載寶塔 /etc/init.d/bt stop && chkconfig --del bt && rm -f /etc/init.d/bt && rm -rf …

如何使用echart做K線圖

使用ECharts制作K線圖需要先引入ECharts的庫文件&#xff0c;然后通過調用相應的API來配置和渲染K線圖。以下是一個簡單的示例代碼&#xff1a; // 引入ECharts庫文件 <script src"https://cdn.jsdelivr.net/npm/echarts5.0.0/dist/echarts.min.js"></scri…

使用Python繪制和弦圖

使用Python繪制和弦圖 和弦圖效果代碼 和弦圖 和弦圖用于展示數據的多對多關系&#xff0c;適合用于社交網絡、交通流量等領域的分析。 效果 代碼 import pandas as pd import holoviews as hv from holoviews import opts hv.extension(bokeh)# 示例數據 data [(A, B, 2),…