2015-11-16 21 views
1

我試圖運行下面的代碼自動完成我的移動應用程序,每一件事情似乎是確定的,但我在下面的行獲得NullPointerExceptionAppium:NullPointerException異常來

driver.findElement(By.id("com.app.aftertax.aftertax:id/Text7")); 

這裏是我的代碼:

public class Login { 
     public static AndroidDriver driver; 

    @BeforeTest 
     public void setUp() throws Exception { 

     File classpathRoot = new File(System.getProperty("user.dir")); 

     File app = new File("/Users/hanan/Downloads/app-at.apk"); 
     DesiredCapabilities capabilities = new DesiredCapabilities(); 
     capabilities.setCapability("deviceName", "Android Emulator"); 
     capabilities.setCapability("platformName","Android"); 
     capabilities.setCapability("platformVersion","4.4"); 
     capabilities.setCapability("app-package", "com.mobikwik_new"); 
     capabilities.setCapability("app-activity", ".MobikwikMain"); 
     capabilities.setCapability("app-wait-activity", 
     ".MobikwikMain"); 
     capabilities.setCapability("appiumVersion", "1.3.7"); 
     //capabilities.setCapability("name", methodName.getName()); 
     capabilities.setCapability("app", app.getAbsolutePath()); 
     new AndroidDriver(new URL("http://localhost:4723/wd/hub"),   
     capabilities); 


} 


     @Test 
     public void apiDemo() throws InterruptedException { 
     Thread.sleep(10000); 
     WebElement login = driver.findElement(By.id("com.app.aftertax.aftertax:id/Text7")); 
     login.click(); 

     } 




} 
+0

您需要將正在創建的新驅動程序對象分配給方法設置中的變量「driver」 – Shamik

回答

1

如果您的代碼行是堆棧跟蹤中的第一個(您應該將完整的堆棧跟蹤添加到這些問題中),那麼這是driver未初始化的變量(==null

0

看來,你是不是在下面的代碼分配Appium對象:

new AndroidDriver(new URL("http://localhost:4723/wd/hub"),   
    capabilities); 

你應該在類級別創建AppiumDriver或AndroidDriver的參考變量。然後在參考變量中分配創建的對象,如下所示:

driver = new AndroidDriver(new URL("http://localhost:4723/wd/hub"),   
    capabilities); 
相關問題