首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用安装程序和登录方法会引发NullPointer异常

调用安装程序和登录方法会引发NullPointer异常
EN

Stack Overflow用户
提问于 2016-02-26 01:38:02
回答 1查看 82关注 0票数 0

我正在使用setup()和login()进行类。

创建另一个类Edit配置文件,调用安装程序并在@BeforeClass中登录,并获得空poiinter。

代码语言:javascript
复制
    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驱动程序

代码语言:javascript
复制
    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();

}
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-26 04:15:34

问题在于你的代码。

在Login()方法@BeforeClass中看到null指针异常的原因是

代码语言:javascript
复制
login.setup("chrome");

但您似乎还没有创建一个登录实例,即,

代码语言:javascript
复制
TestLogin login = new TestLogin();

在你的密码里不见了。

一旦您修复了这个问题,您很可能在您的EditProfile#verifyEditProfile() @Test注释方法中看到另一个EditProfile#verifyEditProfile,因为下面一行

代码语言:javascript
复制
analyticsLandingPage landingpage = PageFactory.initElements(driver, analyticsLandingPage.class);

在这里,您似乎没有实例化驱动程序实例,因此它也可能导致另一个NullPointerException

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35641836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档