2016-06-02 13 views
2

Ich bin neu in Appium, In meinem Code habe ich gewünschte Funktionen gegeben und schrieb einen Testfall, der gut funktioniert. Jetzt möchte ich eine weitere App für den zweiten Test im selben Code starten, wie kann ich das machen? Ich habe von startActivity (App-Paket, App-Aktivität) gehört, aber es funktioniert nicht, es sagt startActivity() nicht für Web-Treiber definiert.Appium startActivity() Funktion

public class Calculator { 
WebDriver driver; 
@BeforeClass 
public void setUp() throws MalformedURLException{ 
//Set up desired capabilities and pass the Android app-activity and app-package to Appium 
DesiredCapabilities capabilities = new DesiredCapabilities(); 
capabilities.setCapability(CapabilityType.BROWSER_NAME, "Android"); 
capabilities.setCapability(CapabilityType.VERSION, "4.4"); 
capabilities.setCapability("platformName", "Android"); 
capabilities.setCapability("deviceName", "14085521650378"); 
capabilities.setCapability("appPackage", "com.android.calculator2"); // This is package name of your app (you can get it from apk info app) 
capabilities.setCapability("appActivity","com.android.calculator2.Calculator"); 
configurations specified in Desired Capabilities 
driver = new RemoteWebDriver(new URL("http://127.0.0.1:9515/wd/hub"), capabilities); 
} 
@Test 
public void testCal(){ 
driver.findElement(By.name("2")).click(); 
driver.findElement(By.name("+")).click(); 
driver.findElement(By.name("4")).click(); 
driver.findElement(By.name("=")).click(); 
} 
@Test 
public void Test2() { driver.startActivity("appPackage", "com.tttk.apc","appActivity","com.tttk.apc.DWDemoActivity"); 
     for(int i=0; i<20;i++) 
     driver.findElement(By.className("android.widget.ImageButton")).click(); 
} 
@AfterClass 
public void teardown(){ 
//close the app 
driver.quit(); 
}} 
+0

teilen Sie bitte den Code Sie für den 'Treiber' Sie verwenden und wo Sie' startActivity' Methode aufgerufen haben. – nullpointer

+0

@nullpointer Bitte schauen Sie auf den editierten Post –

+0

für die gleiche beantwortet, sollten Sie die Methode von der Schnittstelle mit Treiber des Typs 'AndroidDriver' verwenden. – nullpointer

Antwort

2

Scheint, wie Sie versuchen, die Methode mit einer WebDriver Instanz zu verwenden.

Die Methode startActivity wird von einer Schnittstelle StartsActivity bereitgestellt, die nur von AndroidDriver implementiert wird. Also idealerweise funktioniert das:

((AndroidDriver) driver).startActivity(<appPackage>, <appActivity>);