Appiumを使用して、実行時に1つのアプリケーションから別のアプリケーションに切り替える可能性はありますか?.
ありがとう
ついに私は正確な答えを見つけました、それが誰かのために役立つかもしれません
ソース 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);
}
新しいアプリケーションの属性を使用してWebドライバーを再インスタンス化することにより、アプリケーションを変更できます。
driver = webdriver.Remote(appiumUrl,dcapabilityApp1)
[Your tests]
driver = webdriver.Remote(appiumUrl,dcapabilityApp2)
[New app tests]
エミュレーター/シミュレーター/デバイスを閉じたり切断したりしない限り、ユーザーデータは維持されます。
driver.startActivity()メソッドを使用して、アプリを切り替えることができます。それがどのように機能するかの詳細については、以下のビデオをチェックすることができます。
YouTubeで「Appiumチュートリアル-アプリの切り替え(連絡先とSMS)」をご覧ください https://youtu.be/sH1bHeDDj8
次を使用できます。
driver.startActivity(settingsAppPackageName, settingsAppActivityName);
同じコード内で別のアプリを呼び出す。