2017-02-14 3 views
0

Java로 appium을 사용하여 자동화 된 웹 모바일 앱 테스트를 만들고 있습니다. 그리고 나는 genymotion 에뮬레이터를 사용하고 있습니다. 나는Genymotion 장치 이름

DesiredCapabilities cap = new DesiredCapabilities(); 
cap.setCapability(MobileCapabilityType.DEVICE_NAME, "TheDeviceName"); 

와 같은 일부 기능을하고 있어요하지만 내가 얻을 -l ADB 장치에 입력 할 때 cmd를에서, 장치 이름에 대해 확실하지 않다 :

>adb devices -l 
List of devices attached 
192.168.54.101:5555 device product:vbox86p model:AminaPhone device:vbox86p 

이이 코드를 내가 사용 :

package com.example; 

import java.net.MalformedURLException; 

import java.net.URL; 

import org.openqa.selenium.By; 
import org.openqa.selenium.Platform; 
import org.openqa.selenium.WebElement; 
import org.openqa.selenium.remote.BrowserType; 
import org.openqa.selenium.remote.DesiredCapabilities; 
import org.testng.annotations.BeforeClass; 
import org.testng.annotations.Test; 

import io.appium.java_client.AppiumDriver; 
import io.appium.java_client.android.AndroidDriver; 
import io.appium.java_client.remote.MobileCapabilityType; 
import io.appium.java_client.remote.MobilePlatform; 

public class FirstAppiumTest { 


// create instance for appium driver 
    AppiumDriver<WebElement> driver; 
    @Test 

    public void Setup() throws MalformedURLException, InterruptedException 
    { 
     DesiredCapabilities cap = new DesiredCapabilities(); 
     cap.setCapability(MobileCapabilityType.BROWSER_NAME,BrowserType.CHROME); 
     cap.setCapability(MobileCapabilityType.PLATFORM,Platform.ANDROID); 
     cap.setCapability(MobileCapabilityType.PLATFORM_NAME,MobilePlatform.ANDROID); 
     cap.setCapability(MobileCapabilityType.DEVICE_NAME,"Android"); 
     //cap.setCapability("udid","192.168.54.101:5555"); 

     //cap.setCapability("AVD", "emulator-5554"); 
     driver = new AndroidDriver<WebElement>(new URL("http://127.0.0.1:4723/wd/hub/status"), cap); 
     driver.get("http://www.facebook.com"); 
     System.out.println("Title "+driver.getTitle()); 
     System.out.println("SetUp is successful and Appium Driver is launched successfully"); 
     driver.findElement(By.name("email")).sendKeys("[email protected]"); 
     driver.findElement(By.name("pass")).sendKeys("test_selenium"); 
     driver.findElement(By.id("u_0_5")).click(); 
     //Thread.sleep(5000); 
     driver.quit(); 

    } 


} 

내가 원하는 캡슐과 appium 구성에서 해야하는 이름은 무엇입니까? 고맙습니다.

답변

0

"adb devices"는 장치 이름이 아니라 장치 ID를 제공합니다. 그 중요한 경우

을 테스트를 시작하기 전에 당신은 또한 에뮬레이터를 시작하기 : https://stackoverflow.com/a/28961477/7368913

을가를 시작하는 것이 중요 아니라면 는 또한, 당신이 옵션 그래서 appium 기능에서 직접 genymotion 에뮬레이터를 실행하는 것은 불가능합니다 에뮬레이터를 추가하면됩니다.

cap.setCapability("udid, "192.168.54.101:5555"); 
+0

답장을 보내 주셔서 감사합니다. 문제는 실제 장치를 사용할 때 표시되는 이름을 넣는 것입니다. adb 장치. 테스트가 잘 진행됩니다. 그러나 동일한 코드를 가진 에뮬레이터에서는 아무 일도 일어나지 않습니다. appium이 에뮬레이터를 인식하지 못한다고 생각했습니다. 그리고 에뮬레이터를 스스로 점심을 먹을 필요가 없습니다. 코드를 실행하기 전에 실행합니다. – victoria

+1

genymotion 에뮬레이터를 사용할 때 - 일반 장치 이름 기능'capabilities.setCapability ("deviceName", "Android");을 입력하십시오. 기능에 "udid"를 추가하려고 시도 했습니까? 그게 정확히 당신이 필요합니다 –

+0

고마워요. 나는 그들 모두를 시도했지만 에뮬레이터에서 아무 것도 일어나지 않았다 : ( – victoria