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.mzph.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;%解&…