【问题标题】:Appium: How to switch in Mobile App from native App to Mobile Web Browser and run URL on Browser in mobileAppium:如何在移动应用中从原生应用切换到移动网络浏览器并在移动浏览器上运行 URL
【发布时间】:2019-08-16 08:44:10
【问题描述】:

我有一个本地移动应用程序,并通过使用运行正常的 Appium 驱动程序(AppiumDriver 驱动程序)和应用程序的一个功能(例如解锁帐户向用户发送电子邮件,需要用户确认。

所以我找到了如何在电子邮件中获取链接以及如何从发送电子邮件中获取 URL。(保存在字符串变量中,例如“href”)

因此,当自动化运行时,我在“信息”窗口中的移动应用程序中通知用户我们已发送电子邮件进行确认。 现在我的问题是

  1. 如何从本机移动应用程序(屏幕信息)切换并将 URL 放入浏览器,然后在浏览器中打开一个窗口,要求用户输入新密码并重复,然后按 OK ? 之后我应该再次回到移动应用程序。

  2. 我是否需要另一个驱动程序,如 Web 驱动程序(除了上面提到的 appium 驱动程序)来处理切换后浏览器中的操作?

感谢您的支持

这是我的能力:

public AppiumDriver<MobileElement> driver;

.....

public DesiredCapabilities cap = new DesiredCapabilities();

.....

            cap.setCapability("deviceName", helper.getConfiguration(configFileName, "androidDeviceName"));
            cap.setCapability("platformName", helper.getConfiguration(configFileName, "androidPlatformName"));
            cap.setCapability("PlatformVersion", helper.getConfiguration(configFileName, "androidPlatformVersion"));
            cap.setCapability("automationName", "uiautomator2");

            cap.setCapability("MobileCapabilityType.FULL_RESET", android_mct_fullReset);
            cap.setCapability("MobileCapabilityType.NO_RESET", android_mct_noReset);
            cap.setCapability("appium-version", helper.getConfiguration(configFileName, "appiumVersion"));
            cap.setCapability("language", helper.deviceLanguage);
            cap.setCapability("locale", helper.deviceLocale);
            cap.setCapability(AndroidMobileCapabilityType.UNICODE_KEYBOARD, "true");
            cap.setCapability("app", app.getAbsolutePath());

....

        driver = new AppiumDriver<MobileElement>(new URL("http://localhost:4723/wd/hub"), cap);

【问题讨论】:

    标签: selenium appium appium-android appium-ios


    【解决方案1】:

    我认为这将通过以下方式实现:

    driver.startActivity(new Activity("com.example", "ActivityName"));
    

    进口:

    import io.appium.java_client.android.Activity;
    

    使用此方法可以切换应用,你必须知道你有APP_PACKAGEAPP_ACTIVITY,试试this linkthis link来学习。

    这是来自 Play 商店的 APP_PACKAGEAPP_ACTIVITY google chrome browser 示例:

    driver.startActivity(new Activity("com.android.chrome", "com.google.android.apps.chrome.Main"));
    

    您无需为browser 创建新的初始化驱动程序,只需这样做。

    Your native apps start here
    ...
    
    Switch to browser
    
    //example chrome
    driver.startActivity(new Activity("com.android.chrome", "com.google.android.apps.chrome.Main"));
    ....
    
    //back to last activity your native app
    driver.startActivity(new Activity("yourAPP_PACKAGE", "yourAPP_ACTIVITY"));
    

    【讨论】:

      【解决方案2】:
      1. 您可以使用Activity 类使用AndroidDriver.startActivity() 函数启动另一个应用程序,例如:

        Activity activity = new Activity("activity.package", "activity.name");
        activity.setStopApp(false);
        ((AndroidDriver<MobileElement>) driver).startActivity(activity);    
        
      2. 更简单的方法是通过SeeTest Appium Extension 使用Launch 命令,例如:

        seetest.launch("activity.name", false, false);  
        

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-25
        • 2015-03-28
        • 2011-04-27
        • 2015-02-08
        • 1970-01-01
        • 2011-04-07
        相关资源
        最近更新 更多