我正在使用setup()和login()进行类。
创建另一个类Edit配置文件,调用安装程序并在@BeforeClass中登录,并获得空poiinter。
public class TestLogin {
public static WebDriver driver;// = new FirefoxDriver();
public static String baseURL = Configuration.testsite;
@BeforeTest
@Parameters("browser")
public void setup(String browser) throws Exception{
//Check if parameter passed from TestNG is 'firefox'
if(browser.equalsIgnoreCase("firefox")){
//create firefox instance
driver = new FirefoxDriver();
}
//Check if parameter passed as 'chrome'
else if(browser.equalsIgnoreCase("chrome")){
//set path to chromedriver.exe You may need to download it from http://code.google.com/p/selenium/wiki/ChromeDriver
System.setProperty("webdriver.chrome.driver","//Users/eugeneshapo/Documents/chromedriver");
//create chrome instance
driver = new ChromeDriver();
}
else if(browser.equalsIgnoreCase("safari")){
//create chrome instance
driver = new SafariDriver();
}
else{
//If no browser passed throw exception
throw new Exception("Browser is not correct");
}
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
}
//Login test
@Test
public void testLogin() throws InterruptedException{
driver.get(baseURL);
driver.manage().timeouts().implicitlyWait(20L, TimeUnit.SECONDS);
analyticsLoginPage mylogin = PageFactory.initElements(driver, analyticsLoginPage.class);
mylogin.verifylogin("username", "password");
Thread.sleep(3000);
}
@AfterTest
public static void quitDriver(){
driver.quit();
}
}
@Test//(dependsOnMethods = { "testLogin" })
public void verifyEditProfile() throws InterruptedException{*/下行实例化的web驱动程序
WebDriver driver = new ChromeDriver();
analyticsLandingPage landingpage = PageFactory.initElements(driver, analyticsLandingPage.class);
analyticsEditProfilePage editprofile = PageFactory.initElements(driver, analyticsEditProfilePage.class);
landingpage.gotoProfile();
editprofile.verifyEditFirstName();
editprofile.verifyEditLastName();
editprofile.verifyCompanyName();
editprofile.verifyReportingProfile();
editprofile.verifyUsageStatistics();
}
@AfterTest
public static void quitDriver(){
driver.quit();
}
}发布于 2016-02-26 04:15:34
问题在于你的代码。
在Login()方法@BeforeClass中看到null指针异常的原因是
login.setup("chrome");但您似乎还没有创建一个登录实例,即,
TestLogin login = new TestLogin();在你的密码里不见了。
一旦您修复了这个问题,您很可能在您的EditProfile#verifyEditProfile() @Test注释方法中看到另一个EditProfile#verifyEditProfile,因为下面一行
analyticsLandingPage landingpage = PageFactory.initElements(driver, analyticsLandingPage.class);在这里,您似乎没有实例化驱动程序实例,因此它也可能导致另一个NullPointerException
https://stackoverflow.com/questions/35641836
复制相似问题