2014-03-28 26 views

回答

9

終於讓我找到準確的答案,也許這將是有益的某一個

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); 
    } 
+1

有沒有辦法在iOS中實現這一點? – anavarroma

4

您可以通過重新實例化與新應用程序的屬性的webdriver更改應用程序。

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

只要你不關閉/斷開模擬器/模擬器/設備,那麼你的用戶數據將被保留。

+0

HI jkbz, 感謝您的答覆:) 我用JAVA API的工作,做ü有任何想法相當於Java webdriver.Remote 我們需要改變appium端口號駕駛員的新實例=的webdriver .Remote(appiumUrl,dcapabilityApp2 [新的應用測試] – Sravan

+0

你不應該改變端口; _appiumUrl_(above)包含IP和端口 – jkbz

+0

感謝jkbz的答案作爲第二步的一部分,我可以啓動它已經安裝在設備上,我的意思是說我沒有該應用程序的.app或.ipa文件,但它已安裝。提前致謝 –

0

可以使用driver.startActivity()方法在應用程序之間切換。有關更多詳情,請查看以下視頻。

在YouTube上

關注 「應用程序(聯繫人和短信)之間Appium教程 - 切換」 https://youtu.be/sH1bHeDDj8U

0

您可以使用:

driver.startActivity(settingsAppPackageName, settingsAppActivityName); 

使用相同的代碼調用另一個應用程序。

相關問題