• 运行Appium碰到的坑们


    运行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%in

       

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

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

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

        2、直接将%JAVA_HOME%in;放在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();
    }
    }

  • 相关阅读:
    Linux-003-Resource temporarily unavailable
    JMeter学习-041-响应数据中文乱码解决方法
    Java学习-050-AES256 之 java.security.InvalidKeyException: Illegal key size or default parameters 解决方法
    Java学习-049-正则工具类
    JMeter学习-040-JMeter图形化 HTML 报表概要说明
    JMeter学习-039-JMeter 3.0 生成 dashboard HTML 报告图表中文乱码
    JMeter学习-038-JMeter Linux 环境配置
    Linux-002-执行命令时,提示: -bash: {命令}: command not found
    JMeter学习-037-JMeter调试工具之四-BeanShell+jmeter.log
    JMeter学习-036-JMeter调试工具之三---Debug Sampler
  • 原文地址:https://www.cnblogs.com/Lihao2013/p/5621361.html
Copyright © 2020-2023  润新知