2016-11-02 2 views
0

Das ist mein Appium Java-Code, nach dem Start des Tests wird in App-Anmeldeverfahren beendet und sagt java.lang.NullPointerException. Ich habe versucht, alle meine möglichen Lösungen, aber es ist gar nicht funktioniert bitte dieses Problem mit @Testjava.lang.NullPointerException in Appium

public class FirstAutomate { 
private WebDriver driver; 

@Test 

public void setup() throws Exception { 


    File app = new File("C:\\sdk\\platform-tools\\Myapp.apk"); 
    DesiredCapabilities capabilities = new DesiredCapabilities(); 
    //capabilities.setCapability("BROWSER_NAME", "Android"); 
    capabilities.setCapability("VERSION", "5.0.2"); 
    capabilities.setCapability("deviceName","G3 Beat"); 
    capabilities.setCapability("appPackage", "com.skooly.app"); 
    capabilities.setCapability("appActivity","com.skooly.app.screens.prehomescreens.activities.SplashScreen"); 
    capabilities.setCapability("platformName","Android"); 

    capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME,MobilePlatform.ANDROID); 
    capabilities.setCapability("app", app.getAbsolutePath()); 
    try{ 
     driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); 

    }catch(MalformedURLException e) 
    { 
     e.printStackTrace(); 

    } 

    // TODO Auto-generated method stub 

} 
@Test 

    public void AppLogin() throws InterruptedException { 
    //Tapping button 
    driver.findElement(By.id("loginButtonTextView")).click(); 
} 
} 
+0

Ich weiß nicht, appium, aber ich würde nicht davon ausgehen, dass 'setup()' vor Ihrem 'AppLogin()' auf der gleichen Instanz Ihres Tests aufgerufen wird. – JimmyB

+0

Probieren Sie '@Before public void setup() löst Exception {...' oder etwas ähnliches aus. – JimmyB

+0

können Sie den Stack-Trace hinzufügen? –

Antwort

1

Mit JUnit, jede Ihrer Tests, mit Anmerkungen versehen lösen helfen, wird unabhängig von jedem anderen laufen. Deshalb können Sie einige Daten ("driver") in einem @Test nicht einrichten und erwarten, dass es in einem anderen da ist. Dadurch wird setup() laufen und richten Sie Ihre driver vor jeder eigentlichen Test, das heißt AppLogin() in Ihrem Fall

Um Initialisierungsarbeit vor jedem Test, verwenden Sie die @Before Anmerkung, wie in

@Before public void setup() throws Exception { ...

zu tun. Siehe zum Beispiel JUnit before and test.

Verwandte Themen