我可以在同一个测试中在另一个模拟器中的一个模拟器和移动浏览器上启动应用程序吗?

问题描述 投票:0回答:1

我有一个用例,我需要从模拟器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);
java android appium appium-android
1个回答
0
投票

为此,您需要将Device udid放入DesiredCapabilities中。要查找模拟器的设备udid,请使用命令提示符中的adb设备。它将显示设备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();

然后在DesiredCapabilities cap1中添加emulator2的udid

//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);
© www.soinside.com 2019 - 2024. All rights reserved.