2014-05-15 4 views
1

Android 기기는 sony xperia Z, 버전 4.3입니다.실제 기기에서 Android 앱을 실행하는 방법

네이티브 계산기 앱을 자동화하고 싶습니다.

강령 :

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

    public class Calculator { 

    WebDriver driver; 

    @BeforeClass 
    public void setUp() throws MalformedURLException{ 

      //Set up desired capabilities and pass the Android app-activity and app-package to Appium 
      DesiredCapabilities capabilities = new DesiredCapabilities(); 
     capabilities.setCapability(CapabilityType.BROWSER_NAME, "Android"); 
     capabilities.setCapability(CapabilityType.VERSION, "4.3"); 
     capabilities.setCapability(CapabilityType.PLATFORM, "Windows"); 
     capabilities.setCapability("device",""); 
     capabilities.setCapability("app-package", "com.android.calculator2"); // This is package name of your app (you can get it from apk info app) 
     capabilities.setCapability("app-activity", "com.android.calculator2.Calculator"); // This is Launcher activity of your app (you can get it from apk info app) 
      //Create RemoteWebDriver instance and connect to the Appium server. 
      //It will launch the Calculator App in Android Device using the configurations specified in Desired Capabilities 
     driver = new RemoteWebDriver(new URL("http://0.0.0.0:4723/wd/hub"), capabilities); 

    } 
    @Test 
    public void testCal(){ 
     //locate the Text on the calculator by using By.name() 
     WebElement two=driver.findElement(By.name("2")); 
     two.click(); 
     WebElement plus=driver.findElement(By.name("+")); 
     plus.click(); 
     WebElement four=driver.findElement(By.name("4")); 
     four.click(); 
     WebElement equalTo=driver.findElement(By.name("=")); 
     equalTo.click(); 
     //locate the edit box of the calculator by using By.tagName() 
     WebElement results=driver.findElement(By.tagName("EditText")); 
       //Check the calculated value on the edit box 
       assert results.getText().equals("6"):"Actual value is : "+results.getText()+" did not match with expected value: 6"; 
     } 

    @AfterClass 
    public void teardown(){ 
     //close the app 
     driver.quit(); 
    } 
    } 

단계를 : 시스템

1 연결된 장치 및 명령 ADB 장치 확인 - 내 장치가 연결되어 보여줍니다.

2.은 명령을 사용하여 시작되었습니다 : appium & - 서버가 성공적으로 시작되었습니다.

Exception in thread "main" org.openqa.selenium.SessionNotCreatedException: A new session could not be created. (Original error: Parameter 'appPackage' is required for launching application) (WARNING: The server did not provide any stacktrace information) 
Command duration or timeout: 9.50 seconds 
Build info: version: '2.41.0', revision: '3192d8a', time: '2014-03-27 17:17:32' 
System info: host: 'Admin-PC', ip: '192.168.1.13', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_55' 
Driver info: org.openqa.selenium.remote.RemoteWebDriver 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
    at java.lang.reflect.Constructor.newInstance(Unknown Source) 
    at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:193) 
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145) 
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:595) 
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:240) 
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:126) 
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:153) 
    at ExecuteTest.initialize(ExecuteTest.java:30) 
    at ExecuteTest.main(ExecuteTest.java:16) 
+0

주요 활동 및 Manifest 파일은 어디에 있습니까? –

+0

응용 프로그램이 avd에서 실행 중입니까? – Abhishek

+0

user2385504가 에뮬레이터에서 실행 중이라는 질문을 받았기 때문에 장치에서 충돌이 발생하거나 장치에서 시작되지 않습니다. – Shishi

답변

1

Appium 1.0 기능의 다음 목록과 코드를 일치 사용하십시오 : :이 오류을 얻을

:

3. 코드를 실행

DesiredCapabilities capabilities = new DesiredCapabilities(); 
    capabilities.setCapability(CapabilityType.BROWSER_NAME, ""); 
    capabilities.setCapability("deviceName","sony xperia Z"); 
    capabilities.setCapability("platformVersion", "4.4"); 
    capabilities.setCapability("platformName","Android"); 
    capabilities.setCapability("appPackage", "com.android.calculator2"); 
    capabilities.setCapability("appActivity", "com.android.calculator2.Calculator"); 
    driver = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); 

또는 아래 패키지 및 활동 세부 정보가 동일한 경우

 capabilities.setCapability("appPackage", "com.sonymobile.smallapps.calc"); 
capabilities.setCapability("appActivity", "com.sonymobile.smallapps.calc.TestActivity"); 
+0

'app-package'를 'appPackage'로, 'app-activity'를 'appActivity'로 변경하여이 작업을하십시오. –

관련 문제