在 JavaScript中編寫 Appium 測試(入門)

1.編寫一個測試 (JS)

要在 JavaScript(Node.js)中編寫 Appium 測試,我們需要選擇一個與 Appium 兼容的客戶端 庫。維護最好的庫和 Appium 團隊推薦使用的庫是?WebdriverIO, 所有就讓我們使用它吧。既然我們已經安裝了 Appium,我們 已經滿足了 Node 和 NPM 的要求。因此,只需在計算機上創建一個新的項目目錄 然后在其中初始化一個新的 Node.js 項目

import { remote } from 'webdriverio';// 配置Appium測試所需的設備和應用信息
const capabilities = {platformName: 'Android',                  // 測試平臺為安卓'appium:automationName': 'UiAutomator2', // 使用UiAutomator2自動化引擎'appium:deviceName': 'emulator-5554',    // 目標設備名稱(通過adb devices獲取)'appium:appPackage': 'com.android.settings', // 被測應用包名(設置應用)'appium:appActivity': '.Settings',       // 啟動的Activity名稱
};// 從環境變量獲取Appium服務器端口,默認4723
const port = process.env.APPIUM_PORT ? parseInt(process.env.APPIUM_PORT, 10) : 4723;
// 驗證端口有效性
if (isNaN(port)) {console.error('Invalid APPIUM_PORT environment variable');process.exit(1);
}// 配置WebDriver連接選項
const wdOpts = {hostname: process.env.APPIUM_HOST || 'localhost', // Appium服務器地址port,                                              // 服務器端口logLevel: 'info',                                 // 日志級別capabilities,                                      // 傳遞設備和應用配置
};/*** 執行自動化測試的主函數* 1. 連接Appium服務器* 2. 定位并點擊設置中的電池選項* 3. 清理資源并退出*/
async function runTest() {const driver = await remote(wdOpts); // 初始化WebDriver會話try {// 通過ID定位設置中的電池選項(注意:此處ID需要根據實際應用UI調整)const batteryItem = await driver.$('id=com.android.settings:id/battery_item_id');await batteryItem.click(); // 執行點擊操作} finally {await driver.pause(1000); // 等待1秒便于觀察結果await driver.deleteSession(); // 關閉會話釋放資源}
}// 執行測試并處理異常
runTest().catch((error) => {console.error('Test failed:', error);// 可擴展錯誤處理邏輯,如發送通知、記錄詳細日志等
});

基本上,這段代碼正在執行以下操作:

  1. 定義一組 "Capabilities" 能力值(參數),以便 Appium 知道您想自動執行哪種任務。 要自動執行的任務。
  2. 在內置的 Android 設置應用程序上啟動 Appium 會話。
  3. 找到 "Battery"列表項并點擊它。
  4. 停頓片刻,純粹是為了觀察自動化視覺效果。
  5. 結束 Appium 會話。

現在,通過 NPM 安裝?webdriverio?軟件包

npm i --save-dev webdriverio

2.啟動模擬器 + 連 Appium

  • 開模擬器:比如用雷神模擬器,啟動后看到安卓桌面。

記得開啟ROOT權限和ADB調試

  • 查設備:命令行輸 adb devices,看到模擬器設備名(如 emulator-5554 ),說明連好了。

如果顯示有多個設備可使用-s 指定設備進行連接

  • 改代碼里的 deviceName:把 capabilities 里的 deviceName 改成 adb devices 顯示的名稱(比如 emulator-5554 )。

  • 重啟 Appium + 跑腳本:確保 Appium 開著,再執行 node test.js,就能在模擬器上跑自動化啦~

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

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

相關文章

【android bluetooth 框架分析 04】【bt-framework 層詳解 6】【Properties介紹】

DeviceProperties、AdapterProperties、StorageModule、以及 bt_config.conf 是 AOSP Bluetooth 棧中 設備屬性管理與持久化系統 的核心組成部分,它們之間關系緊密,但職責各有不同。 下面我將依次講解它們的區別與聯系. 注意: 在代碼里面 還有 Blueto…

@Resource vs @Autowired 在Spring中的使用和區別

Resource vs Autowired 在Spring中的使用和區別 在Spring開發中,我們常會接觸兩個用于實現引用模塊注入的注解:Resource 和 Autowired。它們在使用上有些相似之處,但本質上來看,有所區別。本文將給出兩者的詳細介紹和對比&#x…

Mac M4 芯片運行大模型指南,包括模型微調與推理

Mac M4 芯片運行大模型指南,模型微調與推理 背景模型推理 Ollama🔍 舉例說明:踩坑 模型微調 unsloth 背景 在國補、教育優惠、京東會員500優惠券等眾多優惠之下。 我拿下了Macmini M4 16G 內存萬兆網卡。在機器到手的第一時間,馬…

微信小程序中安裝vant

以下是微信小程序中安裝 Vant 的詳細步驟: 1. 初始化項目 在微信小程序項目目錄下,打開終端,執行以下命令進行項目初始化: npm init -y該命令會快速生成一個默認的package.json文件,-y參數表示直接使用默認配置&…

今天做的力扣SQL

我本地markdown的東西直接復制出來了。 多說一嘴,今天早上六點醒了,然后被外面吵,心里也擔心找實習就一直睡不著了。索性直接來實驗室,這一上午感覺好快啊。幸運的是,自己也沒有浪費時間,還行吧。SQL欠的賬…

【開發常用命令】:docker常用命令

docker常用命令 基礎命令 # 啟動docker systemctl start docker # 關閉docker systemctl stop docker # 重啟docker systemctl restart docker # 設置開機自啟動 systemctl enable docker # 查看docker運行狀態 systemctl status docker # 查看docker版本號信息 docker versi…

安裝配置以太鏈錢包工具

安裝go語言環境 1、官網下載go安裝包并上傳到指定機器 https://golang.google.cn/dl/ 2、解壓縮至指定位置: tar -C /usr/local -xzf go1.21.0.linux-amd64.tar.gz 3、將 /usr/local/go/bin 目錄添加至 PATH 環境變量: export PATH$PATH:/usr/local/g…

論文閱讀:speculative decoding

Fast Inference from Transformers via Speculative Decoding 論文地址:https://arxiv.org/pdf/2211.17192 speculative sampling 為了從分布 p ( x ) p(x) p(x) 中采樣,我們實際上是從分布 q ( x ) q(x) q(x) 中采樣 x x x,如果 q ( …

java操作word里的表格

依賴&#xff1a; <dependency><groupId>com.techCoLtd</groupId><artifactId>aspose-words-16.4.0-jdk16</artifactId><classifier>jdk16</classifier> </dependency>/*** 刪除表格及表格的行* throws Exception*/ private s…

單鏈表經典算法題之分割鏈表

給定一個頭結點和一個值x&#xff0c;是鏈表中所有小于x的值都在x前面 typedef struct ListNode ListNode; struct ListNode* partition(struct ListNode* head, int x) { //思路一&#xff1a;在原鏈表上進行修改 //思路二&#xff1a;創建新鏈表&#xff0c;使用哨兵位&…

Modbus TCP轉DeviceNet網關連接ABB變頻器配置案例

某工廠需要將支持Modbus TCP協議的上位機控制系統&#xff08;如PLC或SCADA&#xff09;與支持DeviceNet協議的變頻器&#xff08;如ABB ACS880、施耐德ATV320等&#xff09;進行通信。為實現協議轉換&#xff0c;采用開疆智能Modbus TCP轉DeviceNet網關KJ-DVCZ-MTCPS作為中間設…

【力扣 簡單 C++】206. 反轉鏈表

目錄 題目 解法一&#xff1a;迭代 解法二&#xff1a;遞歸 題目 待添加 解法一&#xff1a;迭代 class Solution { private:ListNode* reverse(ListNode* head){ListNode* newHead {};while (head){ListNode* nextNode {head->next};head->next newHead;newHead …

計算機視覺之三維重建(深入淺出SfM與SLAM核心算法)—— 1. 攝像機幾何

文章目錄 1. 針孔相機1.1. 針孔成像1.2. 光圈對成像的影響 2. 透視投影相機2.1. 透鏡成像2.2. 失焦2.3. 徑向畸變2.4. 透視投影的性質 3. 世界坐標系到像素坐標系的變換4. 其它相機模型4.1. 弱透視投影攝像機4.2. 正交投影攝像機4.3. 各種攝像機模型的應用場合 課程視頻鏈接&am…

第十三節:第七部分:Stream流的中間方法、Stream流的終結方法

Stream流常見的中間方法 Stream流常見的終結方法 代碼 學生類&#xff08;代碼一與代碼二共涉及到的類&#xff09; package com.itheima.day28_Stream;import java.util.Objects;public class Student implements Comparable<Student> {private String name;private i…

深入理解 Go 中的字節序(Endianness)檢測代碼

深入理解 Go 中的字節序&#xff08;大小端&#xff09;檢測代碼 在計算機系統中&#xff0c;字節序&#xff08;Endianness&#xff09; 是指多字節數據類型&#xff08;如 int16、int32 等&#xff09;在內存中的存儲順序。Go 語言標準庫提供了對大端&#xff08;Big-endian&…

JAVA:RabbitMQ 消息持久化機制的技術指南

?? 1、簡述 在使用 RabbitMQ 構建可靠消息系統時,消息丟失是必須避免的問題。為此,RabbitMQ 提供了消息持久化機制(Message Durability),可以保障在 Broker 異常宕機后數據不會丟失。 本篇博客將從原理出發,結合 Spring Boot 實戰講解如何正確實現 RabbitMQ 消息持久…

tabs頁簽嵌套表格,切換表格保存數據不變并回勾

需求&#xff1a;點擊左邊的tab頁簽&#xff0c;請求右側表格數據&#xff1b;如果返回的接口數據存在taskuser字段并不為null&#xff0c;那么按照這個字段去回勾數據。如果存在數據&#xff0c;但與后面所勾選的數據項不同&#xff0c;按照后面勾選的為主。 <el-tabs tab-…

Java Kafka消費者

基礎 Java Kafka消費者主要通過以下核心類實現&#xff1a; KafkaConsumer&#xff1a;消費者的核心類&#xff0c;用于創建消費者對象進行數據消費1ConsumerConfig&#xff1a;獲取各種配置參數&#xff0c;如果不配置就使用默認值1ConsumerRecord&#xff1a;每條數據都要封…

Git操作問題及解決方案-記錄5

Git操作問題及解決方案 問題一&#xff1a;本地更改與遠程更新沖突 問題描述 當本地文件有未提交的更改&#xff0c;同時遠程倉庫也有更新時&#xff0c;執行git pull會導致沖突。 $ git pull origin main error: Your local changes to the following files would be overw…

一[3]、ubuntu18.04環境 利用 yolov8 訓練開源列車數據集,并實現列車軌道檢測

一、開源車載數據集地址 (7 封私信) 軌道交通數據集-OSDaR23: Open Sensor Data for Rail 2023 - 知乎 二、參考資料 https://zhuanlan.zhihu.com/p/692608487 YOLOv8訓練自己的數據集-CSDN博客 https://download.csdn.net/blog/column/12710137/140991739