appium java環境_Appium環境搭建(Windows版)

注:appium安裝到C盤,node.js安裝到C盤

一、安裝node.js

1、到官網下載node.js:https://nodejs.org/en/download/

e8bf11af464196c4427af3116cf087e7.png

2、獲取到安裝文件后,直接雙擊安裝文件,根據程序的提示,完成nodejs的安裝。

3、安裝完成后,運行cmd,輸入node –v,如果安裝成功,會輸出如下版本信息:

966a3831ce331b33908bcbf198775a15.png

二、配置Android sdk環境

1、sdk環境配置:http://www.cnblogs.com/puresoul/p/4597211.html

2、確保安裝了?Level 17?或以上的版本 api

3、設置?ANDROID_HOME?系統變量為你的 Android SDK 路徑

F:\Program Files (x86)\Android\android-sdk

83e7421e4b04ed0f46d5a6a273341cf7.png

4、把tools?和platform-tools?兩個目錄加入到系統的Path路徑里

;F:\Program Files (x86)\Android\android-sdk\platform-tools;F:\Program Files (x86)\Android\android-sdk\tools

1641af629eb77d84431d4696befbb43a.png

三、安裝手機驅動并測試連接真機

完成上述步驟以后,為了能夠讓手機連接到PC端進行真機測試。還需要安裝測試手機對應的驅動程序。根據手機型號提前下載相應的離線驅動并安裝,之后將手機與PC通過usb線相連。在cmd中輸入以下命令,如果能夠看到設備,則表示安裝成功。

28f4f00f5394d7927e27cb0b9fad519a.png

四、安裝Appium

2.直接雙擊appium-installer.exe文件安裝就好,桌面會生成一個appium的圖標

02acfa9780f920b361f1ee8c3a62eafc.png

3.把node_modules的bin目錄放到系統的Path路徑里

C:\Program Files (x86)\Appium\node_modules\.bin

8fcf03119a5e54922c2ec07655ebfaf2.png

4.檢查appium所需的環境是否OK:

進入cmd命令行,輸入appium-doctor?,出現以下提示,All Checks were successful ,說明環境成功。

e1c01de6f3c72de443f80abdb9193ffe.png

二、Appium入門實例(Java)

一、使用Eclipse直接創建案例工程

1、打開Eclipse,【File】-->【New】-->【Project】

2、選擇【Java Project】-->【Next】

3、輸入工程名稱Appium_demo,點擊【Finish】

4、右鍵點擊工程 New-Folder,新建兩個文件夾:apps和libs,目錄結構如下:

e2413425e647b27c85e760a942e3097a.png

二、導入測試的類庫

2、導入Appium類庫:

6941fdaf71bcc3b9743a19a090c824d1.png

3、右鍵點擊工程空白處,選擇【Build Path】-->【Configure Build Path】

三、下載測試APK

2、將下載的apk放到項目的apps目錄下

四、建立package包和案例文件

1、在src文件夾上右鍵單擊,【New】-->【package】,輸入包名:com.dan.demo,點擊【Finish】

2、在package下新建類:ContactsTest.java,如下:

package?com.dan.demo;

import?io.appium.java_client.AppiumDriver;

import?io.appium.java_client.android.AndroidDriver;

import?io.appium.java_client.android.AndroidElement;

import?java.io.File;

import?java.net.URL;

import?java.util.List;

import?org.junit.After;

import?org.junit.Before;

import?org.junit.Test;

import?org.openqa.selenium.By;

import?org.openqa.selenium.WebElement;

import?org.openqa.selenium.remote.DesiredCapabilities;

public?class?ContactsTest {

private?AppiumDriver?driver;

@Before

public?void?setUp() throws?Exception {

// set up appium

File classpathRoot?= new?File(System.getProperty("user.dir"));

File appDir?= new?File(classpathRoot, "/apps");

File app?= new?File(appDir, "ContactManager.apk");

DesiredCapabilities capabilities?= new?DesiredCapabilities();

capabilities.setCapability("deviceName","4d1219502472216f");

capabilities.setCapability("platformVersion", "4.4");

capabilities.setCapability("app", app.getAbsolutePath());

capabilities.setCapability("appPackage", "com.example.android.contactmanager");

capabilities.setCapability("appActivity", ".ContactManager");

driver?= new?AndroidDriver<>(new?URL("http://127.0.0.1:4723/wd/hub"), capabilities);

System.out.println("App is launched!");

}

@Test

public?void?addContact(){

WebElement el?= driver.findElement(By.name("Add Contact"));

el.click();

List textFieldsList?= driver.findElementsByClassName("android.widget.EditText");

textFieldsList.get(0).sendKeys("Some Name");

textFieldsList.get(2).sendKeys("Some@example.com");

driver.swipe(100, 500, 100, 100, 2);

driver.findElementByName("Save").click();

System.out.println("App is done!");

}

@After

public?void?tearDown() throws?Exception {

driver.quit();

}

}

7fd458cb289451c4c52a189311dbf9c0.png

f5d429494c1ea79fc21e41ef0d081dd0.png

五、 啟動Android模擬器(也可以連接真機)

2、啟動好后,cmd輸入:adb devices,確定設備是否連接上,如下圖連接成功:

9afa8b102d27c76eaee09edd27ec3d2d.png

六、 啟動Appium

方法一:cmd輸入:appium

a425ba44f7681d9ecef0ff326c26fa80.png

方法二:

1、直接雙擊appium gui圖標(如下圖):

34048c00bd0d0928fd4b827dae43acb7.png

2、點擊右上角的啟動按鈕,啟動日志如下:

b0a6d730dff6ba9613b05982a419d4d0.png

七、 運行測試案例:

1、在eclipse中,項目右鍵>【Run As】>【JUnit Test】,運行過程截圖如下:

a094f0d76232f1ecd6fae393d76ab3a8.png

八、eclipse運行結果:

27c5350e4180a533cbc6123786512486.png

九、Appium運行結果:

7a4a7826688c7a82b225cf48a976af24.png

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

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

相關文章

ci mysql pdo_CI框架中pdo的使用方法

1、配置文件修改application/config文件夾下的database.php文件 $db[default] array(dsn > mysql:dbnameci_ecshop;host127.0.0.1,username > root,password > ,dbdriver > pdo,2、查詢操作$sql select * from aaa where id :id;$sql_array array(:id > …

ie11加載java插件_IE瀏覽器中ActiveX插件的使用

在某些行業的B/S應用系統中會不可避免的要用到ActiveX瀏覽器插件&#xff0c;而ActiveX插件只能在IE內核瀏覽器中運行&#xff0c;而常用的IE瀏覽器的版本眾多&#xff0c;從IE6到IE11&#xff0c;總共有6個版本&#xff0c;這就給開發的應用系統造成了不小的困擾&#xff1a;如…

netty java開發文檔_Netty簡明教學文檔

寫個簡單點&#xff0c;比較小白的文檔&#xff0c;言語比較接地氣Netty是什么&#xff1f;NIO的高層封裝&#xff0c;NIO很難寫&#xff0c;所以有了Netty&#xff0c;方便異步的操作service的主要代碼片段public void run() throws Exception {EventLoopGroup bossGroup new…

mysql 全局不重復_php uniqid() 通過MYSQL實現全局不重復的唯一ID

看了國外文章&#xff1a;https://jason.pureconcepts.net/2013/09/php-convert-uniqid-to-timestamp/ 不想寫&#xff50;&#xff48;&#xff50;腳本uniqid()處理&#xff0c;想到用mysql一次性把數據庫的ID改過來的方法&#xff0c;所以開始了以下研究方法一: 效率最高&…

java接口允許ajax訪問_服務允許AJAX請求,允許跨域請求

當工作時間&#xff0c;因為需要JS 進行AJAX請求&#xff0c;這時候存在跨域問題&#xff0c;當出現這種情況時&#xff0c;有多種方案解決比如使用JSONP&#xff0c;也有一種簡單的方式&#xff0c;就是在過濾器里面增加返回請求允許跨域head配置。代碼如下&#xff1a;/**** …

mysql的增_MySQL之增_insert-replace

MySQL增刪改查之增insert、replace一、INSERT語句帶有values子句的insert語句&#xff0c;用于數據的增加語法&#xff1a;INSERT [INTO] tbl_name[(col_name,...)]{VALUES | VALUE} (expr ,...),(...),...①用來把一個新行插入到表中②為和其它數據庫保持一致&#xff0c;不要…

python manager詳解_python 多進程共享全局變量之Manager()詳解

Manager支持的類型有list,dict,Namespace,Lock,RLock,Semaphore,BoundedSemaphore,Condition,Event,Queue,Value和Array。但當使用Manager處理list、dict等可變數據類型時&#xff0c;需要注意一個陷阱&#xff0c;即Manager對象無法監測到它引用的可變對象值的修改&#xff0c…

java 添加等待時間_Java中線程等待特定時間的最有效方法 - java

我知道這個問題here&#xff0c;但是我有一個稍微不同的問題。如果我希望自己通過各種Thread方法(而不是通過實用程序類或Quartz)手動編碼某個線程在特定時間的運行&#xff0c;那么最有效(就開銷而言)進行編碼。我考慮過:boolean wasInterrupted false;while (System.current…

PHP微信app接口退款,10.PHP接入微信退款接口

推薦文章摘要環境搭建開啟配置服務器環境核心類驗證回復拓展推薦文章今天網上和朋友圈炸開了鍋&#xff0c;原因是微信小程序正式上線了。吃瓜群眾表示不理解&#xff0c;于是去搜了下。不搜不要緊&#xff0c;搜了嚇一跳&#xff0c;原來微信小程序早在2016年9月份就已經進行了…

java線程讀取流的時候卡死,java – 線程中斷沒有結束阻塞調用輸入流讀取

我正在使用RXTX從串口讀取數據.讀取是在以下列方式生成的線程內完成的&#xff1a;CommPortIdentifier portIdentifier CommPortIdentifier.getPortIdentifier(port);CommPort comm portIdentifier.open("Whatever", 2000);SerialPort serial (SerialPort)comm;..…

php poi,GitHub - satthi/poi-php: poi-php

poi-phpvarsion 0.1(2013/10/21)このプラグインはJavaのpoiをPHPから叩いてエクセルを入出力するプラグインです。必須要件jdk1.7.0_40poi-3.9opencsv-2.3使い方①poi-phpを任意の場所に設置②PHPを記述//デフォルト読み込みrequire_once(poi-php.phpのディレクトリパス);$this…

php hmac sha256簽名,HMAC-SHA256簽名錯誤?

#2.連接商戶key&#xff1a;act_name3333321ss&client_ip118.89.65.223&mch_billnoa0000000000000000001&mch_id1529243621&nonce_str905Qh0J59d69JjDtD7QkyRAm576kh5hU&re_openidoiW0l03-60UfHJfo0olLt3wOLb0E&remark111&remark222dddd&send_…

php傳輸的多個id集中為一條記錄,如何將多個ID應用于Mysql中的一條記錄?

在實體關系語言中,這稱為多對多關系.一個產品可以有多個類別,一個類別可以有多個產品.要在關系數據庫中執行此操作,您需要三個表.product: product_id, name, description, etccategory: category_id, catname, catdescription, etc然后用這個所謂的聯接表建立產品和類別之間的…

php redis 傳遞閉包,通過緩存構建高性能 Laravel 應用

通過緩存構建高性能 Laravel 應用由 學院君 創建于3年前, 最后更新于 11個月前版本號 #220678 views9 likes1 collects配置Laravel 為不同的緩存系統提供了統一的 API。緩存配置位于 config/cache.php。在該文件中你可以指定在應用中默認使用哪個緩存驅動。Laravel 開箱支持主流…

imclearboder matlab,Lucas

Lucas-Kanade跟蹤算法是視覺跟蹤中一個很經典的基于點的逐幀跟蹤算法。起初這個算法是用來求解stero matching1的&#xff0c;后來經過Carlo Tomasi2和Jianbo Shi3等人的發展漸趨成熟。Jianbo Shi提出了一種篩選跟蹤點特征的方法&#xff0c;使得特征的跟蹤更可靠。Jean-Yves B…

php判斷url參數為空,PHP檢查url鏈接是否已經有參數的簡單示例

這篇文章主要為大家詳細介紹了PHP檢查url鏈接是否已經有參數的簡單示例&#xff0c;具有一定的參考價值&#xff0c;可以用來參考一下。感興趣的小伙伴&#xff0c;下面一起跟隨512筆記的小編小韻來看看吧&#xff01;比如分頁&#xff0c;因為有些鏈接已經有參數了&#xff0c…

java 讀取 郵件 附件,JavaMail 中對附件下載的處理

在項目中使用 JavaMail 作為郵件核心庫,但是一直遇到一個比較頭疼的問題,當郵件中存在附件時,此封郵件加載速度很慢,最高時之后 80k/s.通過 log 打印看出,當獲取附件時,獲取一段之后等待一段時間在獲取另一端.導致 io 開銷過大,等待網絡讀取時間過長.相關日志如下:O24 FETCH 27…

matlab求勒讓德多項式零點,有沒有勒讓德多項式導數 零點程序

求N1次勒讓德多項式的m(m0,1,...)階導數零點Matlab程序子程序&#xff1a;function xjp(N,alpha,beta)n1:N;a(1)(alphabeta2)/2;b(1)(beta-alpha)/2;a([2:N1])(2*nalphabeta1).*(2*nalphabeta2)./(2*(n1).*(nalphabeta1));b([2:N1])(alpha*alpha-beta*beta)*(2*nalphabeta1)./(…

js_long.php,protobuf.js 與 Long.js的使用詳解

這次給大家帶來protobuf.js 與 Long.js的使用詳解&#xff0c;是急用protobuf.js 與 Long.js的注意事項有哪些&#xff0c;下面就是實戰案例&#xff0c;一起來看一下。protobuf.js的結構和webpack的加載之后的結構很相似。這樣的模塊化組合是個不錯的結構方式。1個是適應了不同…

微分進化算法解決函數優化問題的matlab代碼,Matlab微分進化算法及優化函數測試...

微分進化(Difference Evolution&#xff0c;DE)算法是一種優化算法&#xff0c;據稱其比GA(遺傳算法)等更為優秀。借鑒網上實現的DE算法&#xff0c;用Matlab實現了對若干函數優化問題的解法&#xff0c;代碼如下&#xff1a;function [] de_testclear all;close all;clc;%解&…