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



我有一个用例,需要从安装在模拟器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);

为此,您需要将设备udid放入DesiredCabilities中。要查找模拟器的设备udid,请使用。您可以在命令提示符下使用adb设备。它将显示设备udid。

然后,您可以复制设备udid并将其添加到DesiredCabilities中。

//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的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);

相关内容

最新更新