【问题标题】:I want to switch from app to chrome web browser and then navigate back to same app in appium我想从应用程序切换到 chrome 网络浏览器,然后导航回 appium 中的同一个应用程序
【发布时间】:2020-09-12 14:07:51
【问题描述】:
public class switching {

    @Test
    public void openBrowser() throws MalformedURLException {

        DesiredCapabilities cap = new DesiredCapabilities();

        cap.setCapability("deviceName","One plus 5");
        cap.setCapability("udid", "9a0f2cfd");
        cap.setCapability("platformName", "Android");
        cap.setCapability("platformversion", "9.0.11");
        cap.setCapability("appPackage", "io.appium.android.apis");
        cap.setCapability("appActivity", "io.appium.android.apis.ApiDemos");
        URL url =new URL("http://127.0.0.1:4723/wd/hub");
        AndroidDriver driver= new AndroidDriver(url,cap);
        // after performing actions on app want to navigate to web browser

  }
}

现在,我想导航到 chrome 浏览器并打开任何 url,然后导航回同一个应用程序

【问题讨论】:

标签: java android selenium automation appium


【解决方案1】:

有几种方法可以实现这一点:

  • 您可以使用 driver.activateApp("com.android.chrome") 打开 Mobile Chrome。但是,在这种情况下,您需要手动处理 URL 打开(定位 URL 输入字段,键入它等)

  • 您可以使用adb 命令在特定页面上打开 Chrome,例如:

public void openChromeNavigatedTo(String URL) throws IOException {
   String command = String.format("adb shell am start -n com.android.chrome/com.google.android.apps.chrome.Main -d '%s'", URL);
   Process process = new ProcessBuilder(command).start();
}

当 Chrome 打开时,您可以将其视为普通的移动应用程序:查找定位器并与之交互。

完成后,您可能需要关闭 Chrome:

public void closeChrome() {
   driver.terminateApp("com.android.chrome");
}

很遗憾,无法保证在此之后您的主应用程序成为焦点,因此您应该明确地这样做:

public void launchApp() {
   driver.launchApp();
}

我希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2017-01-07
    • 2017-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-24
    • 1970-01-01
    • 1970-01-01
    • 2017-11-06
    相关资源
    最近更新 更多