2014-03-28 12 views

Antwort

9

Schließlich fand ich eine genaue Antwort Mai wird es für einige eine

Quelle 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); 
    } 
sehr nützlich sein,
+1

Gibt es eine Möglichkeit, dies in iOS zu erreichen? – anavarroma

4

können Sie Anwendungen ändern, indem die WebDriver mit der neuen Anwendung Attribute neu instanziieren.

Solange Sie den Emulator/Simulator/Gerät nicht schließen/trennen, werden Ihre Benutzerdaten beibehalten.

+0

HALLO jkbz, Vielen Dank für die Antwort :) ich mit JAVA API arbeite, do u eine Idee haben, java Äquivalent webdriver.Remote tun müssen wir die appium Portnummer für die neue Instanz des Treibers verändern = WebDriver .Remote (appiumUrl, dcapabilityApp2 [Neue app Tests] – Sravan

+0

Sie sollten den Port nicht ändern müssen; _appiumUrl_ (oben) ist sowohl von IP und Port. – jkbz

+0

Danke jkbz für die Antwort.Als Teil des zweiten Schrittes kann ich starten, die bereits auf dem Gerät installiert ist, ich habe zu sagen, ich habe keine .app oder .ipa-Datei für diese App, aber es ist installiert Vielen Dank im Voraus –

0

Die Methode driver.startActivity() kann zum Umschalten zwischen Apps verwendet werden. Für weitere Details, wie es funktioniert, können Sie unten Video sehen.

Watch "Appium Tutorial- Umschalten zwischen Anwendungen (Kontakt und SMS)" auf YouTube https://youtu.be/sH1bHeDDj8U

0

können Sie verwenden:

driver.startActivity(settingsAppPackageName, settingsAppActivityName); 

, um eine andere App mit demselben Code aufzurufen.