NullPointerException错误,即未为第二个测试类初始化AndroidDriver,因为它对于第一个测试类工作正常

这是我的设置课程:

公共类SetupClass {

//AppiumDriver<MobileElement> driver;
AndroidDriver<MobileElement> d;
public Properties prop =null;
public File file;
public FileInputStream fis;

@Parameters(value ="Android")
@BeforeSuite
public void setup(String Android) throws IOException,Exception{
    LoadPropertiesFile();
    DesiredCapabilities caps = new DesiredCapabilities();
    /*caps.setCapability("plateformName","Android");
    caps.setCapability(CapabilityType.PLATFORM_NAME,"Android");*/
    if (Android.equalsIgnoreCase("Moto_g4_Plus")) {
    caps.setCapability(MobileCapabilityType.PLATFORM_NAME,"Android");
    caps.setCapability(MobileCapabilityType.PLATFORM_VERSION,"7.0");
    caps.setCapability(MobileCapabilityType.UDID,"ZY223WZSQ9");
    caps.setCapability(MobileCapabilityType.DEVICE_NAME,"Moto G4 Plus");
    }
    caps.setCapability("app","C:\\Users\\amarjeet.sharma\\eclipse-workspace\\com.asm.app\\src\\test\\resources\\app\\asmVisit.apk");
    caps.setCapability("appPackage","com.sumasoft.net.asmscheduler");
    caps.setCapability("appactivity","md5f32326382a711c73d2de951d70f3bd5e.Mainactivity");
    caps.setCapability("autoGrantPermissions",true);
    URL url;
    try {
        url = new URL("http://127.0.0.1:4723/wd/hub");
        //driver = new AppiumDriver<MobileElement>(url,caps);
        d = new AndroidDriver<MobileElement>(url,caps);
        Thread.sleep(5000);

    } catch (MalformedURLException e) {
        // TODO Auto-generated catch block
        System.out.println("Cause is:" +e.getcause());
        System.out.println("Message is:" +e.getMessage());
        e.printStackTrace();
    }
}

public void LoadPropertiesFile() throws IOException {       
    prop=new Properties();      
    file =new File(System.getProperty("user.dir")+"/src/main/resources/config.properties");     
    fis=new FileInputStream(file);
    prop.load(fis);     
    //System.out.println(prop.getProperty("userId"));
}

//@AfterTest
public void TearDown() throws IOException{
    System.out.println("Quit");
    d.quit();
}

}

这是我的LoginTest

公共类LoginTest扩展了SetupClass {

@Test(priority = 1)
public void login() throws Exception {
    LoginPage lp = new LoginPage(d);
    //System.out.println(prop.getProperty("userId"));
    lp.username(prop.getProperty("userId"));
    Thread.sleep(500);
    lp.password(prop.getProperty("Passwd"));
    Thread.sleep(500);
    lp.loginButton();           
}

}

这是我创建的新旅程课程

公共类AddJourneyTest扩展了SetupClass {

@Test(priority=2)
public void AddNewJourney() throws Exception {

    AddjourneyPage addobj = new AddjourneyPage(d);
    addobj.ClicktoAdd();
    addobj.SelectFromToDate();
    addobj.SelectState();
    addobj.SelectCity();
    addobj.ClickonSubmit();
}

}

我正在为AddJourney类获取NullPointerException 我认为当我将其作为TestNG运行时,驱动程序将启动LoginTest并保存控件。这样AddJourney类不会启动驱动程序,因此不会引发NullPointerException。 我正在使用带有物理android设备的Windows系统上的Android应用自动化使用Appium Server, Java + Selenium + TestNG 。 也许我错了。但是我没有解决的办法。请帮忙。

tmroybq 回答:NullPointerException错误,即未为第二个测试类初始化AndroidDriver,因为它对于第一个测试类工作正常

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2978274.html

大家都在问