首页 文章

Appium错误:Logcat捕获失败:使用Android Studio生成ENOENT

提问于
浏览
2

我在Android Studio中使用Appium WebDriver为Android模拟器运行一个简单的计算器测试 . 我手动启动了Appium Server和Android Emulator,然后使用TestNG.xml运行测试 .

这是我的示例WebDriver代码 -

package com.example.user.mysampleapp2;

/**
 * Created by CParmar on 14-09-2017.
 */

import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.TimeUnit;
import org.testng.annotations.*;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;

import io.appium.java_client.remote.MobileCapabilityType;
import io.appium.java_client.remote.MobilePlatform;

public class SampleTests {
    public WebDriver driver;

    @BeforeClass
    public void setUp() throws MalformedURLException {
        // Created object of DesiredCapabilities class.
        DesiredCapabilities capabilities = new DesiredCapabilities();

        // Set android deviceName desired capability. Set your device name.
        capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Nexus_6_API_25");

        // Set BROWSER_NAME desired capability. It's Android in our case here.
        capabilities.setCapability(MobileCapabilityType.BROWSER_NAME, "Android");

        // Set android VERSION desired capability. Set your mobile device's OS version.
        capabilities.setCapability(MobileCapabilityType.VERSION, "7.1.1");

        // Set android platformName desired capability. It's Android in our case here.
        capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, MobilePlatform.ANDROID);

        // Set android appPackage desired capability. It is
        // com.android.calculator2 for calculator application.
        // Set your application's appPackage if you are using any other app.
        capabilities.setCapability("appPackage", "com.android.calculator2");

        // Set android appActivity desired capability. It is
        // com.android.calculator2.Calculator for calculator application.
        // Set your application's appPackage if you are using any other app.
        capabilities.setCapability("appActivity", "com.android.calculator2.Calculator");

        // Created object of RemoteWebDriver will all set capabilities.
        // Set appium server address and port number in URL string.
        // It will launch calculator app in android device.
        driver = new RemoteWebDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    }

    @Test
    public void testFirstCalculator() {

        // Click on DELETE/CLR button to clear result text box before running test.
        driver.findElements(By.xpath("//android.widget.Button")).get(0).click();

        // Click on number 2 button.
        driver.findElement(By.name("7")).click();

        driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
    }

    @AfterClass
    public void End() {
        driver.quit();
    }
}

当我从Android Studio运行时,我得到了Appium Error .

使用以下命令启动Appium服务器:C:\ Program Files(x86)\ Appium \ node.exe lib \ server \ main.js --address 127.0.0.1 --port 4723 --platform-name Android --platform-version 23 --automation-name Appium --log-no-color info:欢迎使用Appium v1.4.16(REV ae6877eff263066b26328d457bd285c0cc62430d)info:Appium REST http接口监听器在127.0.0.1:4723上启动信息:[debug]非默认服务器args: {“address”:“127.0.0.1”,“logNoColors”:true,“platformName”:“Android”,“platformVersion”:“23”,“automationName”:“Appium”} info:Console LogLevel:debug info: - - > POST / wd / hub / session {“desiredCapabilities”:{“appPackage”:“com.android.calculator2”,“appActivity”:“com.android.calculator2.Calculator”,“browserName”:“Android”,“ platformName “:” 安卓 “ ”设备名称“: ”Nexus_6_API_25“, ”版本“: ”7.1.1“}, ”requiredCapabilities“:{}, ”能力“:{ ”desiredCapabilities“:{ ”appPackage“:” 融为一体 . android.calculator2" , “appActivity”: “com.android.calculator2.Calculator”, “browserName”: “机器人”, “platformName”: “机器人”,“开发iceName “:” Nexus_6_API_25" , “版本”: “7.1.1”}, “requiredCapabilities”:{}, “alwaysMatch”:{ “browserName”: “机器人”, “platformName”: “安卓”}, “firstMatch” :[]}} info:客户端用户代理字符串:Apache-HttpClient / 4.5.3(Java / 1.8.0_131)info:[debug]提供了以下所需功能,但appium无法识别 . 它们将被传递给在此服务器上运行的任何其他服务 . :版本信息:[调试]没有得到应用程序,但确实获得Android包,将尝试在设备信息上启动它:[debug]创建新的appium会话42818f6f-0677-486a-bc53-efa31009bbe7信息:启动android appium info :[debug]获取Java版本信息:Java版本是:1.8.0_131 info:[debug]检查adb是否存在警告:ANDROID_HOME环境变量未设置为Android SDK根目录路径 . 与SDK 23兼容时需要ANDROID_HOME . 检查PATH的adb . info:[debug]执行cmd:其中adb info:[debug]使用来自C:\ Users \ CParmar \ AppData \ Local \ Android \ sdk \ platform-tools \ adb.exe的adb警告:没有应用程序功能,无法解析包/活动信息:[debug]使用快速重置?真实信息:[debug]为会话信息准备设备:[debug]不检查app是否存在因为我们假设它已经在设备信息上:检索设备信息:[debug]试图找到连接的android设备信息:[debug ]获取连接设备...信息:[debug]执行cmd:“C:\ Users \ CParmar \ AppData \ Local \ Android \ sdk \ platform-tools \ adb.exe”设备信息:[debug] 1个设备连接信息:找到设备模拟器-5554信息:[debug]将设备ID设置为emulator-5554信息:[debug]等待设备准备就绪并响应shell命令(timeout = 5)info:[debug] execution cmd: “C:\ Users \ CParmar \ AppData \ Local \ Android \ sdk \ platform-tools \ adb.exe”-s emulator-5554 wait-for-device info:[debug] execution cmd:“C:\ Users \ CParmar \ AppData \ Local \ Android \ sdk \ platform-tools \ adb.exe“-s emulator -5554 shell”echo'ready'“info:[debug]启动logcat捕获错误:Logcat捕获失败:spawn”C:\ Users \ CParmar \ AppData \ Local \ Android \ sdk \ platform-tools \ adb.exe“ENOENT i nfo:[debug]停止logcat捕获

我已浏览论坛上的所有可用帖子,并在Android Studio运行配置(Android_Home)中使用SDK路径设置ANDROID_HOME变量 . 我仍然收到此错误 .

有帮助吗?

谢谢,Chandresh Parmar

2 回答

  • 1

    您可以按照这些answers来修复正在设置的 ANDROID_HOME env变量 . 在此期间,我建议安装appium-doctor并在appium测试执行之前检查环境设置中缺少的内容 .

    在你的情况下:

    npm install appium-doctor -g
    appium-doctor --android
    

    您期望得到的回应是:

    ### Diagnostic starting ###
    ✔ The Node.js binary was found at: /usr/local/bin/node
    ✔ Node version is 7.9.0
    ✔ ANDROID_HOME is set to: /Users/<user>/Library/Android/sdk
    ✔ JAVA_HOME is set to: /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
    ✔ adb exists at: /Users/<user>/Library/Android/sdk/platform-tools/adb
    ✔ android exists at: /Users/<user>/Library/Android/sdk/tools/android
    ✔ emulator exists at: /Users/<user>/Library/Android/sdk/tools/emulator
    ✔ Bin directory of $JAVA_HOME is set
    ### Diagnostic completed, no fix needed. ###
    

    修复所有 x 标记并祝你好运

  • 0

    从错误日志中,您可以清楚地看到,未设置 ANDROID_HOME 环境变量 .

    例如:您已在“C:\ Users \ YourUserName \ AndroidSDK”中安装了Android SDK,然后ANDROID_HOME路径的值将是相同的路径 .

    只需添加名为ANDROID_HOME的新环境变量,并将值作为路径 .

    还有你的appium版本旧的(1.4.16) . 我建议你把它升级到1.6.3,这是目前非常稳定的appium版本

相关问题