Hello,
I need help to run Appium on Android emulator using an android application (like calculator, settings, …). When I use an .apk it works fine, but for a com.android it doesn’t.
I’m not sure if this is an bug or lack of knowledge from my part (<- most possible) but since I didn’t find anything regarding this on internet I’m posting here.
If possible could you please provide me an step by step guide on how to fix it?
Please note detailed info bellow.
Thanks in advance!
CONFIGS
Environments:
ANDROID_HOME: …\Android\android-sdk-windows
JAVA_HOME: …\Java\jdk1.8.0_92
PATH: …\Oracle\Java\javapath;%JAVA_HOME%\bin;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\platforms; …\nodejs\
java-client-3.4.1
AppiumForWindows_1_4_16_1
selenium-2.53.0
-
Windows SO:
Windows 7 Enterprise 32-bit -
APPIUM:
MY CODE:
package teste.com.example;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.remote.MobileCapabilityType;
import java.net.MalformedURLException;
import java.net.URL;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeClass;
public class CalculatorTest {
AppiumDriver<WebElement> driver;
//@SuppressWarnings("deprecation")
@BeforeClass
public void Setup() throws MalformedURLException{
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "emulator-5554");
capabilities.setCapability("appPackage", "com.android.calculator2");
capabilities.setCapability("appActivity","com.android.calculator2.Calculator");
capabilities.setCapability("avd", "emulator-5554");
driver = new AndroidDriver<WebElement>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
}
@Test
public void Add() {
//clean display
driver.findElementByAccessibilityId("delete").click();
//execute add operation
driver.findElementById("digit1").click();
driver.findElementByAccessibilityId("plus").click();
driver.findElementById("digit3").click();
driver.findElementByAccessibilityId("equals").click();
//verify result
String result = driver.findElementByClassName("android.widget.EditText").getText();
result.equals("4");
}
}
APPIUM LOG
> Launching Appium server with command: C:\Program Files\Appium\node.exe lib\server\main.js --address 127.0.0.1 --port 4723 --platform-name Android --platform-version 23 --automation-name Appium --device-name "emuator-5554" --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,"deviceName":"emuator-5554","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","platformName":"Android","deviceName":"emulator-5554","avd":"emulator-5554"}}
> info: Client User-Agent string: Apache-HttpClient/4.5.1 (Java/1.8.0_92)
> 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 4971b8df-4993-4ba2-8634-a6425e104ab5
> info: Starting android appium
> info: [debug] Getting Java version
> info: Java version is: 1.8.0_92
> info: [debug] Checking whether adb is present
> info: [debug] Using adb from C:\Program Files\Android\android-sdk-windows\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: [debug] Trying to find emulator-5554 emulator
> info: [debug] Getting connected emulators
> info: [debug] Getting connected devices...
> info: [debug] executing cmd: "C:\Program Files\Android\android-sdk-windows\platform-tools\adb.exe" devices
> info: [debug] 1 device(s) connected
> info: [debug] 1 emulator(s) connected
> info: [debug] Sending telnet command to device: avd name
> info: [debug] Getting running emulator port
> info: [debug] Socket connection to device created
> info: [debug] Socket connection to device ready
> info: [debug] Telnet command got response: ae[Ke[Dave[Ke[De[Davde[Ke[De[De[Davd e[Ke[De[De[De[Davd ne[Ke[De[De[De[De[Davd nae[Ke[De[De[De[De[De[Davd name[Ke[De[De[De[De[De[De[Davd namee[K
> TestNexus7
> info: [debug] Emulator emulator-5554 not running
> info: [debug] Launching Emulator with AVD emulator-5554, launchTimeout 120000ms and readyTimeout 120000ms
> info: [debug] Checking whether emulator is present
> info: [debug] Using emulator from C:\Program Files\Android\android-sdk-windows\tools\emulator.exe
> info: [debug] Trying to find emulator-5554 emulator
> info: [debug] Getting connected emulators
> info: [debug] Getting connected devices...
> info: [debug] executing cmd: "C:\Program Files\Android\android-sdk-windows\platform-tools\adb.exe" devices
> info: [debug] 1 device(s) connected
> info: [debug] 1 emulator(s) connected
> info: [debug] Sending telnet command to device: avd name
> info: [debug] Getting running emulator port
> info: [debug] Socket connection to device created
> info: [debug] Socket connection to device ready
> info: [debug] Telnet command got response: ae[Ke[Dave[Ke[De[Davde[Ke[De[De[Davd e[Ke[De[De[De[Davd ne[Ke[De[De[De[De[Davd nae[Ke[De[De[De[De[De[Davd name[Ke[De[De[De[De[De[De[Davd namee[K
> TestNexus7
> info: [debug] Emulator emulator-5554 not running
> error: Unable to start Emulator: PANIC: HOME is defined but could not find emulator-5554.ini file in $HOME\.android\avd
> (Note: avd is searched in the order of $ANDROID_AVD_HOME,$ANDROID_SDK_HOME\.android\avd and $HOME\.android\avd)
>