Можно ли запустить приложение на одном эмуляторе и мобильный браузер на другом эмуляторе в одном тесте? - PullRequest
0 голосов
/ 18 января 2019

У меня есть случай, когда мне нужно скопировать ссылку из приложения, установленного в эмуляторе 1, закрыть приложение, переключиться на эмулятор 2, а затем запустить браузер на эмуляторе 2 и вставить ссылку, скопированную из приложения в эмуляторе 1. Как могу ли я достичь этого? Код, который я написал, вызывает браузер в самом эмуляторе 1 и вставляет ссылку.

    File app = new File("abcd.apk");
    DesiredCapabilities cap = new DesiredCapabilities();
    cap.setCapability(MobileCapabilityType.DEVICE_NAME, "emulator-5554");
    cap.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, "100");
    cap.setCapability(MobileCapabilityType.APP, app.getAbsolutePath());

    AndroidDriver driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), cap);
    driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
    /*
     String link = code to get the link
    */
    driver.closeApp();
    driver.quit();


    DesiredCapabilities cap1 = new DesiredCapabilities();
    cap1.setCapability(MobileCapabilityType.DEVICE_NAME, "emulator-5556");
    cap1.setCapability(MobileCapabilityType.PLATFORM_NAME, MobilePlatform.ANDROID);
    cap1.setCapability(MobileCapabilityType.BROWSER_NAME, "chrome");
    cap1.setCapability(MobileCapabilityType.VERSION, "7.0");

    WebDriver webdriver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), cap1);  // chrome mobile
    webdriver.get(link);

1 Ответ

0 голосов
/ 18 января 2019

Для этого вам нужно положить Device udid в DesiredCapabilities . Чтобы найти udid устройства вашего эмулятора, используйте команду adb devices в командной строке. Он покажет устройство udid.

Затем вы можете скопировать udid устройства и добавить его в DesiredCapabilities.

//Other desired capabilities
cap.setCapability("udid","your emulator 1 device udid");
AppiumDriver driver= new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), cap);

Запустит ваше приложение в эмуляторе 1. Теперь вы можете скопировать ссылку с устройства, используя

String myLink= driver.findElementById("elements id here").getText();

Затем добавьте udid эмулятора2 в DesiredCapabilities cap1

//other desired capabilities
cap1.setCapability("udid", "emulator 2 udid");

AppiumDriver driver2 = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), cap);

//open URL in chrome browser
driver.get(myLink);
...