运行Appium的时候,碰到的那些坑

1. java命令会出现error:could not open ...jvm.cfg

  出现这种情况大多是因为电脑上之前安装过JDK,卸载重装之后,运行java命令会出现error:could not open ...jvm.cfg的错误。

打开系统环境变量,查看PATH,会看到诸如此类的配置信息:

    %SystemRoot%\system32;%SystemRoot%;......%JAVA_HOME%\lib;%JAVA_HOME%\bin

原因:在运行java时,默认会按照PATH中设置的路径去寻找java.exe文件,按上述PATH信息首先会去找%SystemRoot%\system32目录下的文件,而该目录下的java.exe对应的jdk安装目录已被卸载,自然会出现文件打不开的提示。

看到这儿或许你明白了,简单的解决方法有二:

1、直接删除system32目录(或windows目录,视PATH中的路径设置而定)下的java.exe(其实看下文件日期就会发现,该文件与当前安装的JAVA bin目录下的文件日期不一样);

2、直接将%JAVA_HOME%\bin;放在PATH路径的最前面(知道为什么了吧);

2. 错误信息: UiAutomator quit before it successfully launched

  网上很多信息,但是最终自己的解决方法竟然是重启手机。

3. 初始化AppiumDriver的时候,使用java-client 2.0之前的版本。2.0之后的版本有初始化问题,没有找到合适的解决办法。

4. 获取app的启动activity

1) 把当前路径指向sdk的build-tools目录,并把apk文件放进去:执行以下命令: .\aapt dump badging xxx.apk命令获取包内信息。注意,启动类名称一个字母都不能错

注意launchable-activity属性

2)没有apk,应用已经安装到手机或虚拟机中。可以使用logcat命令

.清除logcat内容,使用命令adb logcat -c

.启动logcat,使用命令adb logcat ActivityManager:I *:s

5. 获取元素属性 (monitor.bat 或uiautomatorviewer.bat)

打开monitor之后,就能通过点选找出页面元素的属性了。

6. 启动测试时,遇到permission to start activity denied,一般是启动首页的activity设置有误。

Android的实例

package com.glen.demo;

import io.appium.java_client.AppiumDriver;
//import io.appium.java_client.android.AndroidDriver;

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.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;

import java.io.File;
import java.net.URL;
import java.util.List;
import java.util.concurrent.TimeUnit;

public class ContactsTest {

private AppiumDriver driver;

@Before
public void setUp() throws Exception {
//apk放置的位置
File classpathRoot = new File(System.getProperty("user.dir"));
File appDir = new File(classpathRoot, "apps");
File app = new File(appDir, "app_F_1.3.0.apk");

//初始化
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.BROWSER_NAME, "");
capabilities.setCapability("platformName", "Android"); //平台名称
//capabilities.setCapability("deviceName", "emulator-5554");
capabilities.setCapability("deviceName", "HTC D820mu"); //手机的名字
capabilities.setCapability("platformVersion", "4.4"); //Android 版本
capabilities.setCapability("app", app.getAbsolutePath()); //设置app路径

capabilities.setCapability("appPackage", "com.kuaichengwuliu"); //app的包名
capabilities.setCapability("appActivity", ".activities.XJWelcomePage");//app的启动页面,一般是AndroidManifest.xml里面的第一个activity
//实例化
driver = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
if(driver.isAppInstalled(null))
driver.removeApp(null);
else
driver.installApp(app.getAbsolutePath());
driver.launchApp();
}
@Test
public void addContact(){
// To Do List
}

@After
public void tearDown() throws Exception {
driver.quit();
}
}

运行Appium碰到的坑们的更多相关文章

  1. 如何在 iOS 真机运行 Appium

    使用 gui 启动的 appium 1.2.2 也会有这个问题,所以你要把 deviceconsole 复制到 /Applications/Appium.app/Contents/Resources/ ...

  2. 那些年安装Appium遇到的坑

      安装appium以及相关的总体记录   1 主要流程是参照这个来 https://www.cnblogs.com/wangyinghao/p/5780151.html 细节参考虫师的博客 http ...

  3. 那些在BAE上部署node.js碰到的坑

    在BAE上使用node.js半年多了,其中碰到了不少因为BAE云环境限制碰到的坑 写下来大家碰到了,也不用那么麻烦的去看好几天代码了,直接对症下药 官方公布的坑有: BAE是使用package.jso ...

  4. Torch-RNN运行过程中的坑 [1](读取Lua非空table,size为0)

    0.踩坑背景 执行Torch-RNN的时候,在LanguageModel.lua中的encode_string函数中,对start_text的各个character进行id映射编码,实现功能类似“北京 ...

  5. Torch-RNN运行过程中的坑 [0](一些基础概念)

    0.Lua & LuaJIT简介 Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能. Lua 是巴 ...

  6. Appium学习实践(一)简易运行Appium

    环境: Appium 1.4.13 OS X  10.10.5 真机已安装app,或者未安装,通过ipa文件来安装,并启动Appium Inspector 点击Appium中的放大镜后,自动运行App ...

  7. Appium环境搭建——安装以及运行appium server失败点总结

    一.运行Appium失败:未安装.Net Framework 4.5 之前安装AppScan安全测试工具时,就要求.Net 4.5以上环境,我其中一台电脑的系统是Win7-32bit的,安装.Net ...

  8. Mac下hadoop运行word count的坑

    Mac下hadoop运行word count的坑 Word count体现了Map Reduce的经典思想,是分布式计算中中的hello world.然而博主很幸运地遇到了Mac下特有的问题Mkdir ...

  9. Appium使用Python运行appium测试的实例

    Appium使用Python运行appium测试的实例 一.  Appium之介绍 https://testerhome.com/topics/8038 详情参考--https://testerhom ...

随机推荐

  1. Inno Setup使用上的几个问题

    Inno Setup使用上的几个问题 分类: Install Setup 2013-02-02 15:48 1781人阅读 评论(0) 收藏 举报 Inno Setup使用上的几个问题: [问题一:I ...

  2. 服务器的Arch Linux,CentOS的,Debian的,Fedora的,Gentoo的,openSUSE的,Slackware的,和Ubuntu哪个好

    我能够建议的就是:如果你自己是开发者,如果你自己买了一台 VPS 自己搭服务器用.选 Ubuntu/Debian 挺好.当然如果你觉得自己闲工夫实在多得没处花,可以隔三差五的就到服务器上做升级更新,用 ...

  3. 【题解】【数组】【Prefix Sums】【Codility】Genomic Range Query

    A non-empty zero-indexed string S is given. String S consists of N characters from the set of upper- ...

  4. 跟开涛老师学shiro -- 身份验证

    身份验证,即在应用中谁能证明他就是他本人.一般提供如他们的身份ID一些标识信息来表明他就是他本人,如提供身份证,用户名/密码来证明. 在shiro中,用户需要提供principals (身份)和cre ...

  5. easyui accordion—手风琴格子始终展开和多个格子展开

    来源:http://www.cnblogs.com/tylerdonet/p/3531844.html 始终打开有时候可能会很管用,其实就是一个设置问题.这里就不再介绍引用的资源了,这里只看看html ...

  6. javascript 火狐event.keyCode不能使用event is not defined

    在项目中,登录时需要enter按钮提交页面所以需要监听键盘输出 但是在火狐中不支持 event.code 所以换了中写法 1:form中加入时间传入event <form id="fr ...

  7. css cursor属性详解

    cursor                       // 鼠标移上去的鼠标状态 属性值有以下: (可以将鼠标移上以下属性值看看效果) auto crosshair default pointer ...

  8. php函数 date() 详细资料

    date_default_timezone_set(PRC); /*把时间调到北京时间,php5默认为格林威治标准时间*/ date () a: "am"或是"pm&qu ...

  9. 装载:深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件

    在求取有约束条件的优化问题时,拉格朗日乘子法(Lagrange Multiplier) 和KKT条件是非常重要的两个求取方法,对于等式约束的优化问题,可以应用拉格朗日乘子法去求取最优值:如果含有不等式 ...

  10. 268. Missing Number

    Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find the one that is missin ...