【问题标题】:Appium when started Programmatically, the Android Driver fails to InitializeAppium 以编程方式启动时,Android 驱动程序无法初始化
【发布时间】:2016-09-12 14:29:52
【问题描述】:

我一直在尝试以编程方式启动 Appium 服务器,然后根据进程输出,初始化 Android 驱动程序并运行一些测试。但是,每次从程序启动 Appium Server 时,都会在 Android Driver 的初始化上停止执行。

这是我启动服务器的方法:

private boolean StartServer(String strCommand)
{
    try
    {
        rtCommand = Runtime.getRuntime();
        proc = rtCommand.exec(strCommand);

        BufferedReader stdInput = new BufferedReader(new 
             InputStreamReader(proc.getInputStream()));

        //Checking output of Appium Server Initialization
        String s = null;
        while ((s = stdInput.readLine()) != null)
        {
            System.out.println(s);
            if (s.contains("Console LogLevel: debug"));
                return true;
        }
    }
    catch (Exception ex)
    {
        System.out.println("Error in starting Appium Server. Stack Trace below:");
        ex.printStackTrace();
        return false;
    }
    return false;
}

现在,我的 TestNG 注释 @BeforeClass 包含以下代码:

@BeforeClass
public void setUp() throws MalformedURLException
{
    StartServer("cmd /c \"\"C:/Program Files (x86)/nodejs/node.exe\" \"C:/Program Files (x86)/Appium/node_modules/appium/lib/server/main.js\" --address 127.0.0.1 --port 4723 --platform-name Android --platform-version 23 --automation-name Appium --log-no-color --udid 3100aeb26c6a2363\"");

    FrameworkDriver objFrameworkDriver = new FrameworkDriver();

    DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setCapability("deviceName", "ec5bee97");
    capabilities.setCapability("BROWSER_NAME", Android");
    capabilities.setCapability("VERSION", "5.1.1");
    capabilities.setCapability("platformName", "Android");
    capabilities.setCapability("appPackage", "com.XX.AA");
    capabilities.setCapability("appActivity", "com.XX.AA.BB");
    strProjectDir = "<MyProjectLoc>";

    try
    {
        driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
    }
    catch (Exception ex)
    {
        ex.printStackTrace();
    }

    System.out.println();
}

执行在这里停止:

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

【问题讨论】:

  • 它给出了什么错误?
  • 无错误。执行只是在该语句上停止并且......只是保持僵局。
  • 我在 Appium Jar 上找不到任何 ServerArguments 类。使用 v4.1.2

标签: java android appium


【解决方案1】:

尝试在启动服务器命令行中使用类似版本 5.1.1 的版本,而不是平台版本 23。 (与代码中功能中定义的版本相同)

StartServer("cmd /c \"\"C:/Program Files (x86)/nodejs/node.exe\" \"C:/Program Files (x86)/Appium/node_modules/appium/lib/server/main.js\" --address 127.0.0.1 --port 4723 --platform-name Android --version 5.1.1 --automation-name Appium --log-no-color --udid 3100aeb26c6a2363\"");

Appium 想要 Android 设备的 OS 版本而不是 API 级别

另外,请确保定义功能时使用的设备名称与启动服务器命令行中定义的设备名称相同。

【讨论】:

  • '--version 5.1.1' 参数返回 Appium 版本号。这不会启动 Appium 服务器。
  • 这不是appium版本号。提供的附加参数将检查具有匹配配置的可用设备。因此,此处的版本意味着您要在其上运行测试的 android 设备/模拟器的操作系统版本。
猜你喜欢
  • 2016-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-15
  • 1970-01-01
  • 1970-01-01
  • 2021-04-13
  • 2015-02-07
相关资源
最近更新 更多