2014-03-28 31 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); 

使用相同的代码调用另一个应用程序。

相关问题