web-dev-qa-db-ja.com

実行時にあるアプリから別のアプリに切り替える方法

Appiumを使用して、実行時に1つのアプリケーションから別のアプリケーションに切り替える可能性はありますか?.

ありがとう

11
Sravan

ついに私は正確な答えを見つけました、それが誰かのために役立つかもしれません

ソース https://www.linkedin.com/grp/post/6669152-6027319885992841219?trk=groups-post-b-title

 // App1 capabilities
 String calculatorAppPackageName="com.Android.calculator2";
 String calculatorAppActivityName="com.Android.calculator2.Calculator";

// App2 capabilities
 String settingsAppPackageName="com.Android.settings";
 String settingsAppActivityName="com.Android.settings.Settings";

 @Before
 public void setUp() throws MalformedURLException
 {
        DesiredCapabilities capabilities = DesiredCapabilities.Android();
        capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, "Appium");
        capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
        capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "192.168.215.101:5555");
        capabilities.setCapability(MobileCapabilityType.APP_PACKAGE, calculatorAppPackageName);
        capabilities.setCapability(MobileCapabilityType.APP_ACTIVITY, calculatorAppActivityName);
        driver = new AndroidDriver(new URL("http://localhost:4723/wd/hub"), capabilities);
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

 }

 @Test
    public void testApp() throws InterruptedException, MalformedURLException
    {
        //Perform calculation in calculator
        driver.findElement(By.name("4")).click();
        driver.findElement(By.name("×")).click();
        driver.findElement(By.name("3")).click();
        driver.findElement(By.name("=")).click();

        //launch settings App
        driver.startActivity(settingsAppPackageName, settingsAppActivityName);

        //Switch OFF WIFI
        driver.findElement(By.id("com.Android.settings:id/switchWidget")).click();

        //Re launch calculator App
        driver.startActivity(calculatorAppPackageName, calculatorAppActivityName);

        //Validate results
        String result = driver.findElement(By.className("Android.widget.EditText")).getText();
        System.out.println("Result : " + result);
        Assert.assertEquals("Incorrect Result", "12", result);
    }
14
Sravan

新しいアプリケーションの属性を使用してWebドライバーを再インスタンス化することにより、アプリケーションを変更できます。

driver = webdriver.Remote(appiumUrl,dcapabilityApp1)
[Your tests]
driver = webdriver.Remote(appiumUrl,dcapabilityApp2)
[New app tests]

エミュレーター/シミュレーター/デバイスを閉じたり切断したりしない限り、ユーザーデータは維持されます。

4
jkbz

driver.startActivity()メソッドを使用して、アプリを切り替えることができます。それがどのように機能するかの詳細については、以下のビデオをチェックすることができます。

YouTubeで「Appiumチュートリアル-アプリの切り替え(連絡先とSMS)」をご覧ください https://youtu.be/sH1bHeDDj8

0

次を使用できます。

driver.startActivity(settingsAppPackageName, settingsAppActivityName);

同じコード内で別のアプリを呼び出す。

0
Nitin Shinde