2015-09-14 12 views
6

Esecuzione di test di automazione su emulatore Android tramite appium. Il browser nell'emulatore non si apre quando è automatizzato tramite codice. Ho copiato il mio codice qui sotto gentilmente, guardandolo e aiutandomi. Grazie in anticipoAutomatizzazione di emulatore e browser Android tramite script Appium

package report; 
import java.net.MalformedURLException; 
import java.net.URL; 
import java.util.List; 
import java.util.concurrent.TimeUnit; 

import javax.swing.JOptionPane; 

import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.WebElement; 
import org.openqa.selenium.firefox.FirefoxDriver; 
import org.openqa.selenium.firefox.FirefoxProfile; 
import org.openqa.selenium.remote.CapabilityType; 
import org.openqa.selenium.remote.DesiredCapabilities; 
import org.openqa.selenium.remote.RemoteWebDriver; 
import org.testng.annotations.BeforeTest; 
import org.testng.annotations.Test; 


public class emulator { 
WebDriver driver; 

public void setUp() throws MalformedURLException 
{ 
DesiredCapabilities capabilities= new DesiredCapabilities(); 
capabilities.setCapability(CapabilityType.BROWSER_NAME,"browser"); 
capabilities.setCapability(CapabilityType.VERSION,"4.4"); 
capabilities.setCapability(CapabilityType.PLATFORM,"windows"); 
capabilities.setCapability("platformName","Android"); 
capabilities.setCapability("devices","Android"); 
capabilities.setCapability("avd","nexus"); 
capabilities.setCapability("deviceName",""); 
capabilities.setCapability("appPackage", "com.android.browser"); 
capabilities.setCapability("appActivity", "com.android.browser.BrowserActivity"); 
driver=new RemoteWebDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); 
} 



public void cal(){ 
driver.get("http://www.google.com"); 

} 
public static void main(String[] args) throws MalformedURLException 
{ 
emulator a=new emulator(); 
a.setUp(); 
a.cal();   
} 
} 
+0

Quale errore o eccezione si ottiene? –

+0

Viene visualizzato questo errore "Un'operazione non è stata completata prima del timeout scaduto. (Errore originale: timeout: il comando Adb è scaduto dopo 30 secondi" – bcrajkumar

+0

Sì, perché l'emulatore Android predefinito richiede troppo tempo per essere aperto e caricato. con il dispositivo reale o l'emulatore Genymotion .. –

risposta

5

La schermata di blocco disattiverà l'altro script del nostro programma. Così ho provato ad aprire l'emulatore manualmente e disabilitare la schermata di blocco (Impostazioni -> Sicurezza -> Nessuna). Quindi chiudi l'emulatore. Ora apri l'emulatore automaticamente ed esegui lo script.

public void setUp(int p) throws MalformedURLException { 
    DesiredCapabilities capabilities = new DesiredCapabilities(); 
    capabilities.setCapability(CapabilityType.BROWSER_NAME, "browser"); 
    capabilities.setCapability(CapabilityType.VERSION, ""); 
    capabilities.setCapability(CapabilityType.PLATFORM, "windows"); 
    capabilities.setCapability("platformName", "Android"); 
    capabilities.setCapability("udid", "emulator-" + p); 
    capabilities.setCapability("devices", "Android"); 
    capabilities.setCapability("avd", "Nexus7"); 
    capabilities.setCapability("deviceName", ""); 
    capabilities.setCapability("appPackage", "com.android.browser"); 
    capabilities.setCapability("appActivity", "com.android.browser.BrowserActivity"); 
    driver = new RemoteWebDriver(new URL("http://127.0.0.1:" + this.port + "/wd/hub"), 
      capabilities); 
} 
Problemi correlati