这是我的appium java代码,在开始测试之后停止在app登录方法中并说java.lang.NullPointerException。我尝试了所有可能的解决方案,但它根本不起作用请帮助解决这个问题
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 :(得分:1)
使用JUnit,每个用@Test
注释的测试都是从任何其他测试中独立运行的 。这就是为什么你不能在一个driver
中设置一些数据(“@Test
”)并期望它在另一个@Test
中。
要在每次测试之前进行初始化工作,请使用@Before
注释,如
@Before public void setup() throws Exception { ...
这将使setup()
在每次实际测试之前运行并设置driver
,例如AppLogin()
。例如,请参阅JUnit before and test。