2017-02-14 3 views
0

Я создаю несколько автоматических тестов для мобильного мобильного приложения, используя appium с Java. И я использую эмулятор genymotion. я устанавливаю некоторые возможности, какИмя устройства Genymotion

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

Но я не уверен, что имя устройства, из ЦМД, когда я типа ADB устройства -l я получаю:

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

Это код i использовано:

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» предоставляют вам идентификатор устройства, а не имя устройства. кроме того, это не возможно запустить genymotion эмулятор непосредственно из возможностей appium, так что вы должны вариантов:

если его для Вас важно также запустить эмулятор перед началом теста: https://stackoverflow.com/a/28961477/7368913

, если это не важно для запуска эмулятора, просто добавьте возможность:

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

Благодарим за предоставленную информацию. Проблема в том, что когда я использую реальное устройство, я помещаю имя, отображаемое; adb. и тест проходит нормально. Но с эмулятором с тем же кодом ничего не происходит. Я думал, что appium не распознает эмулятор. И мне не нужно обедать им эмулятором. Я запускаю его перед запуском кода. – victoria

+1

при использовании эмулятора genymotion - добавьте возможности имени универсального устройства 'capability.setCapability (" deviceName "," Android ");' вы попробовали добавить «udid» к возможностям? его точно, что вам нужно –

+0

Спасибо. Я попробовал оба из них, и ничего не происходит на эмуляторе :( – victoria

Смежные вопросы