2017-09-15 1 views
2

Android Studio에서 Appium + WebDriver를 사용하여 Android 에뮬레이터에 대한 간단한 계산기 테스트를 실행하고 있습니다. Appium Server 및 Android Emulator를 수동으로 시작한 다음 TestNG.xml을 사용하여 테스트를 실행했습니다. 나는 안드로이드 스튜디오에서이 프로그램을 실행할 때Appium 오류 : 로그 캡쳐 실패 : ENOENT Android Studio 사용

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(); 
    } 
} 

내가 Appium 오류 아래 얻을 -

여기 내 샘플 WebDriver 코드입니다.

Launching Appium server with command: 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: Welcome to Appium v1.4.16 (REV ae6877eff263066b26328d457bd285c0cc62430d) info: Appium REST http interface listener started on 127.0.0.1:4723 info: [debug] Non-default server 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":"Android","deviceName":"Nexus_6_API_25","version":"7.1.1"},"requiredCapabilities":{},"capabilities":{"desiredCapabilities":{"appPackage":"com.android.calculator2","appActivity":"com.android.calculator2.Calculator","browserName":"Android","platformName":"Android","deviceName":"Nexus_6_API_25","version":"7.1.1"},"requiredCapabilities":{},"alwaysMatch":{"browserName":"Android","platformName":"Android"},"firstMatch":[]}} info: Client User-Agent string: Apache-HttpClient/4.5.3 (Java/1.8.0_131) info: [debug] The following desired capabilities were provided, but not recognized by appium. They will be passed on to any other services running on this server. : version info: [debug] Didn't get app but did get Android package, will attempt to launch it on the device info: [debug] Creating new appium session 42818f6f-0677-486a-bc53-efa31009bbe7 info: Starting android appium info: [debug] Getting Java version info: Java version is: 1.8.0_131 info: [debug] Checking whether adb is present warn: The ANDROID_HOME environment variable is not set to the Android SDK root directory path. ANDROID_HOME is required for compatibility with SDK 23+. Checking along PATH for adb. info: [debug] executing cmd: where adb info: [debug] Using adb from C:\Users\CParmar\AppData\Local\Android\sdk\platform-tools\adb.exe

warn: No app capability, can't parse package/activity info: [debug] Using fast reset? true info: [debug] Preparing device for session info: [debug] Not checking whether app is present since we are assuming it's already on the device info: Retrieving device info: [debug] Trying to find a connected android device info: [debug] Getting connected devices... info: [debug] executing cmd: "C:\Users\CParmar\AppData\Local\Android\sdk\platform-tools\adb.exe" devices info: [debug] 1 device(s) connected info: Found device emulator-5554 info: [debug] Setting device id to emulator-5554 info: [debug] Waiting for device to be ready and to respond to shell commands (timeout = 5) info: [debug] executing cmd: "C:\Users\CParmar\AppData\Local\Android\sdk\platform-tools\adb.exe" -s emulator-5554 wait-for-device info: [debug] executing cmd: "C:\Users\CParmar\AppData\Local\Android\sdk\platform-tools\adb.exe" -s emulator-5554 shell "echo 'ready'" info: [debug] Starting logcat capture error: Logcat capture failed: spawn "C:\Users\CParmar\AppData\Local\Android\sdk\platform-tools\adb.exe" ENOENT info: [debug] Stopping logcat capture

내가 포럼에 사용 가능한 모든 포스트를 통과하고 안드로이드 스튜디오 실행 구성에서 SDK 경로 (Android_Home)와 ANDROID_HOME 변수를 설정했다. 여전히이 오류가 발생합니다.

어떤 도움이 필요합니까?

감사합니다, 오류 로그에서 Chandresh Parmar

답변

0

, 당신은 ANDROID_HOME 환경 변수가 설정되어 있지 않은 것을 분명히 알 수 있습니다.

예 : "C : \ Users \ YourUserName \ AndroidSDK"에 Android SDK를 설치 한 경우 ANDROID_HOME 경로의 값은 같은 경로가됩니다.

이름이 ANDROID_HOME이고 경로가 value 인 새 환경 변수를 추가하기 만하면됩니다.

또한 appium 버전이 매우 오래되었습니다 (1.4.16). 1.6.3으로 업그레이드 하시길 바랍니다. 현재로서는 매우 안정적인 버전입니다.

+0

모든 x마르크 행운 수정 내 컴퓨터 및 Android Studio에 설치된 SDK 아래 이미지를 참조하십시오. –

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. ### 

은 이미 안드로이드하는 ANDROID_HOME 변수를 설정 한

관련 문제