是否可以在同一测试中在一个模拟器上启动应用程序,并在另一个模拟器上启动移动浏览器?

时间:2019-01-17 22:04:31

标签: java android appium appium-android

我有一个用例,我需要从模拟器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 :(得分:0)

为此,您需要将设备已淘汰放在 DesiredCapabilities 中。要查找仿真器中要使用的设备,可以在命令提示符下使用 adb设备。它将显示设备已被处理。

然后,您可以复制被复制的设备并将其添加到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();

然后在 DesiredCapabilities cap1

中添加模拟器2的
//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);