【appium】APP元素操作Api、androidDriver操作Api

一、元素操作Api

主要是做斷言 text

1、click()——觸發當前元素的點擊事件

2、sendKeys(...)——輸入數據

3、clear()——清空內容

4、getAttribute()?——獲取屬性值

字符串類型屬性:

  • content-desc(返回content-desc屬性值)

  • text(返回 text)

  • className(返回 class)

  • resourceId(返回 resource-id)

布爾類型屬性同UiautomatorViewer里面保持一致

5、getText() =====等同于:getAttribute("text")

獲取當前元素的文本值(文本屬性值)

6、getTagName()

二、androidDriver操作Api

1、currentActivity()

當前正在前臺運行的界面名,我們可以用此API在某些場景進行斷言:是否當前activity符合我們的預期等。

//得到當前正在運行的activity
String activity = androidDriver.currentActivity();

2、getPageSource()

可以用于判斷當前頁面是否有某個元素,或者判斷當前頁面有沒有產生變化:

如:上下滾動判斷是否已經到了底端/頂端;

獲取app代碼源碼 用來做斷言 根據源碼看頁面有沒有什么變化

??注意是當前頁面,當前看到的頁面,不是全部頁面

//得到當前頁面的結構圖
androidDriver.getPageSource();

3、其他信息獲取類API

  • 獲取設備時間信息

    androidDriver.getDeviceTime();
  • 獲取設備DPI,注意不是分辨率,屏幕密度 (Density)

    androidDriver.getDisplayDensity();
  • 獲取automation name,默認為null,

    如果有指定automation name為uiautomator2就為對應的值

    androidDriver.getAutomationName();
  • 獲取設備橫豎屏狀態,有PORTRAIT(豎屏)與LANDSCAPE(橫屏)

    androidDriver.getOrientation();

4、pressKey():KeyEvent 按鍵——app特有api—— pressKey()

輸入android對應的key 激活對應的功能 包括:聲音大小、相機、開關機、返回鍵等等

安卓對應的鍵:Android KeyCode 安卓鍵碼對照表-CSDN博客

KeyEvent key = new KeyEvent();
key.withKey(AndroidKey.BACK);
driver.pressKey(key);

5、getScreenshotAs() 截圖

//手機截圖文件
//file對象存在一個臨時目錄,srcFile
File srcFile = driver.getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(srcFile,new File("/.../android.png"));

6、坐標點擊 TouchAction

選擇設置中關于手機->連續點擊五次版本號->進入開發者選項->指針位置進行勾選

注意:坐標點擊受設備屏幕尺寸/分辨率/DPI影響,萬不得已不要使用此種方式
缺點:兼容性差 更換設備后一般不能用
實現方式:(類似于web的拖動:press——release——perform)
TouchAction action = new TouchAction(driver);
//創建坐標點擊對象PointOption
//創建點 x y  ??左上角是原點
PointOption point = PointOption.point(493,837);
//點擊
action.press(point).release().perform();

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

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

相關文章

C語言中結構體成員訪問操作符的含義及其用法

1.直接訪問操作符 用法&#xff1a;結構體名.成員名。 含義&#xff1a;直接訪問結構體中的成員變量。 示例&#xff1a; #include<stdio.h> struct student {char name[20];int age; }; int main() {//定義了一個結構體數組arrstruct student arr[4] { {"cxk&q…

產品經理相關的學習網站

一、原型案例 AxureShop產品原型網&#xff1a; https://www.axureshop.com/ 人人都是產品經理&#xff1a;https://www.woshipm.com/ 二、如何找各類圖標、各類圖表 各類圖標&#xff1a; IconPark&#xff1b; 各類圖表&#xff1a;echarts.apache.org&#xff08;柱狀圖、餅…

深入淺出HTTP/2預檢請求(CORS Preflight Request)

前言 在現代Web開發中&#xff0c;跨域資源共享&#xff08;Cross-Origin Resource Sharing&#xff0c;簡稱CORS&#xff09;是一項關鍵技術&#xff0c;它允許瀏覽器在不同源之間安全地執行Ajax請求。當一個來自不同源的請求涉及到一些特殊 HTTP 頭部或者方法時&#xff0c;…

23端口登錄的Telnet命令+傳輸協議FTP命令

一、23端口登錄的Telnet命令 Telnet是傳輸控制協議/互聯網協議&#xff08;TCP/IP&#xff09;網絡&#xff08;如Internet&#xff09;的登錄和仿真程序&#xff0c;主要用于Internet會話。基本功能是允許用戶登錄進入遠程主機程序。 常用的Telnet命令 Telnet命令的格式為&…

有人吐槽:可視化大屏面向領導的設計,真相是這樣嗎?

某些老鐵的態度很極端&#xff0c;看到可視化大屏頁面就一口斷定&#xff0c;除了討好領導之外&#xff0c;屁用沒有。真相是這樣嗎&#xff1f;貝格前端工場嘗試給老鐵們分析下。 一、可視化大屏確實要面向領導&#xff0c;但不是討好領導 可視化大屏的設計需要考慮領導和管理…

整理的一些腦模板及節點的名稱

整理的一些腦模板及節點的名稱 前言模板簡介AAL90模板HOA112 模板 前言 自己看論文找的&#xff0c;因為有些數據集網站的確有點難找到模板的名稱等等。所以主要是看一些論文&#xff0c;因為有文獻&#xff0c;所以更有保障一些。當然也有一些在數據網站上比較容易找到所以一…

社交軟件----

story feed(聚合服務) 查 聯表查詢 表冗余字段java拼接user_service查詢用戶的avator和nick_namefollow_service查詢我是否關注item_service查詢我的in_box in_box如何設計redis zset 關注 數據庫設計 MySQL 根據ER圖設計表 create table follow(id bigint unsigned n…

小興教你做平衡小車-stm32程序開發(按鍵掃描)

文章目錄 1 單片機最小系統板按鍵原理圖介紹2 庫函數程序設計3 寄存器程序設計4 效果展示 1 單片機最小系統板按鍵原理圖介紹 從圖中看出單片機的PB12引腳接到了按鍵上。 根據按鍵的原理圖&#xff0c;可以分析得到&#xff0c;如果不按下按鍵的時候&#xff0c;引腳輸入的是…

【Linux】frp內網穿透詳細教程(簡單易懂)

frp內網穿透詳細教程&#xff08;簡單易懂&#xff09; 文章目錄 frp內網穿透詳細教程&#xff08;簡單易懂&#xff09;frp是什么&#xff1f;工作原理準備工作frp工具的使用第一步&#xff1a;下載安裝包第二步&#xff1a;公網部署frps第三步&#xff1a;內網部署frpc第四步…

適配華為“純血鴻蒙”,抖音開始招聘相關人才

目前&#xff0c;字節跳動上線了“大前端高級開發工程師”一職&#xff0c;開始招聘鴻蒙人才。 根據職位描述&#xff0c;該崗位負責抖音大前端基礎工程與架構設計&#xff0c;以及抖音大前端基礎設施建設。 該職位需要有前端工程化經驗&#xff0c;熟悉JavaScript/TypeScrip…

關于BT站

BT站&#xff0c;全稱BitTorrent站點&#xff0c;是一種基于BitTorrent協議的P2P&#xff08;點對點&#xff09;文件共享網站。BitTorrent是一種分布式文件共享協議&#xff0c;允許用戶直接在彼此之間傳輸文件&#xff0c;而不需要依賴于中央服務器。BT站提供種子文件&#x…

斐波那契數列模型---使用最小花費爬樓梯

746. 使用最小花費爬樓梯 - 力扣&#xff08;LeetCode&#xff09; 1、狀態表示&#xff1a; 題目意思即&#xff1a;cost[i]代表從第i層向上爬1階或者2階&#xff0c;需要花費多少力氣。如cost[0]&#xff0c;代表從第0階爬到第1階或者第2階需要cost[0]的力氣。 一共有cost.…

springboot/ssm學院個人信息管理系統Java高校課程作業管理系統web

springboot/ssm學院個人信息管理系統Java高校課程作業管理系統web 基于springboot(可改ssm)vue項目 開發語言&#xff1a;Java 框架&#xff1a;springboot/可改ssm vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09; 服務器&#xff1a;tomcat 數據庫&#xf…

編寫高質量Python (第35條) 不要通過 throw 變換生成器狀態

第 35 條 不要通過 throw 變換生成器狀態 ? 除 yield from 表達式(參見 第 33 條) 與 send 方法&#xff08;參見 第 34 條&#xff09;外&#xff0c;生成器還有一個高級功能&#xff0c;就是可以把調用者通過 throw 方法傳過來的 Exception 實例重新拋出。這個 throw 方法用…

Vue 3 中的 Teleport 特性詳解

引言 在 Vue 3 中&#xff0c;引入了一個名為 Teleport 的新特性。這個特性允許開發者將組件的子組件“傳送”到 DOM 中的任意位置&#xff0c;而不僅僅是它們的直接父級內部。這一功能在處理如模態框、彈出菜單、提示框等需要從其原始位置在視覺上移動到其他地方的用戶界面元…

Spring Boot與Spring Boot MVC:構建現代化Web應用的利器

Spring Boot與Spring Boot MVC&#xff1a;構建現代化Web應用的利器 在當今的軟件開發領域&#xff0c;特別是在Java生態系統中&#xff0c;Spring框架已經成為構建企業級應用程序的首選。而在Spring的眾多子項目中&#xff0c;Spring Boot和Spring MVC是兩個非常重要的組成部…

C++_數據類型_字符串型

作用 用于表示一串字符 兩種風格 C風格字符串&#xff1a;char 變量名[] "字符串值” 示例 注意 C風格的字符串要用雙括號括起來 C風格字符串&#xff1a;string 變量名 "字符串值” 注意 用C風格字符串的時候&#xff0c;要包含這個頭文件#include <st…

PostgreSQL常用SQL語句

文章目錄 PostgreSQL常用SQL語句免密交互增刪改查備份恢復數據遷移用戶管理權限管理進程管理查詢優化PostgreSQL常用SQL語句 PostgreSQL部署,參見PostgreSQL部署與配置 免密交互 命令行執行SQL語句或備份、恢復時,有以下兩種方式 1.交互式

【比較mybatis、lazy、sqltoy、lambda、操作數據 】操作批量新增、分頁查詢【一】

orm框架使用Lambda性能比較 環境&#xff1a; idea jdk17 spring boot 3.0.7 mysql 8.0測試條件常規對象 orm 框架是否支持xml是否支持 Lambda對比版本mybatis????3.5.4sqltoy????5.2.98lazy????1.2.3-JDK17 數據庫表(含有唯一性索引s_u) CREATE TABLE sys_u…