Ich erstelle einige automatisierte Tests für mobile Web-Apps, die Appium mit Java verwenden. Und ich benutze den Genymotion-Emulator. Ich gründe einige Fähigkeiten, wieGenymotion Gerätename
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability(MobileCapabilityType.DEVICE_NAME, "TheDeviceName");
Aber ich bin über den Gerätenamen nicht sicher, von cmd, wenn ich adb Geräte geben -l ich:
>adb devices -l
List of devices attached
192.168.54.101:5555 device product:vbox86p model:AminaPhone device:vbox86p
Dies ist der Code ich benutzte:
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();
}
}
Was ist der Name, den ich in den gewünschten capabilities und in der appium Konfiguration sollte? Danke.
Vielen Dank für Ihre Antwort. Das Problem ist, wenn ich ein echtes Gerät benutze, gebe ich den Namen an; adb-Geräte. und der Test läuft ok. Aber mit Emulator mit dem gleichen Code passiert nichts. Ich dachte, dass Appium den Emulator nicht erkennt. Und ich brauche den Emulator nicht selbst zu essen. Ich starte es, bevor ich den Code ausführe. – victoria
Wenn Sie einen Genymotion-Emulator verwenden - setzen Sie eine generische Gerätenamen-Fähigkeit 'capabilities.setCapability (" deviceName "," Android ");' haben Sie versucht, "udid" zu den Funktionen hinzuzufügen? es ist genau das, was Sie brauchen –
Danke. Ich habe beide ausprobiert und nichts passiert auf dem Emulator :( – victoria