2016-08-14 8 views
0

POMに基づいてテストケースを実行しようとしているときに "java.lang.NullPointerException"が発生しています。 BrowserFactoryクラスでブラウザを選択できます。POMに基づくFlipkart_Loginクラスは、特定のページのすべての要素を格納し、Valid_Login()メソッド と最後にTest_Flipkart_Loginクラスを持っています.ExecutonのValid_Loginこのクラスを実行するには、java.lang.NullPointerExceptionを取得します。Selenium POM java.lang.NullPointerException

よろしくお願いします!

FAILED:Flipkart_Login_Test java.lang.NullPointerExceptionがDataProviders.ConfigDataProvider.getURL(ConfigDataProvider.java:31) でTestCases.Test_Flipkart_Login.Flipkart_Login_Test(Test_Flipkart_Login.java:19)で

パブリッククラスConfigDataProvider { 静的プロパティpro;

public ConfigDataProvider() 
{ 

    File src = new File("C:\\Data\\Bimlesh\\Flipkart_HybridFramework\\Flipkart.Hybrid.FrameworkComplete\\Configuration\\Config.Properties"); 

    try 
    { 
     FileInputStream fis = new FileInputStream(src); 
     pro = new Properties(); 
     pro.load(fis); 

    } catch (Exception e) 
    { 
     System.out.println("The Config exception is :"+e.getMessage()); 
    } 

} 

public static String getURL() 
{ 
    String URL = pro.getProperty("URL"); 
    return URL; 
} 

public static String ChromePath() 
{ 
    String Chrome = pro.getProperty("Chromepath"); 
    return Chrome; 
} 

public static String IEPath() 
{ 
    String IE = pro.getProperty("IEpath"); 
    return IE; 
} 

}

パブリッククラスBrowserFactory {静的webdriverをドライバ。

public static WebDriver getBrowser(String BrowserName) 
{ 
    if(BrowserName.equalsIgnoreCase("Firefox")) 
    { 
     driver = new FirefoxDriver(); 
    } 
    else if(BrowserName.equalsIgnoreCase("Chrome")) 
    { 
     System.setProperty("webdriver.chrome.driver", ConfigDataProvider.ChromePath()); 
     driver = new ChromeDriver(); 
    } 
    else if(BrowserName.equalsIgnoreCase("IE")) 
    { 
     System.setProperty("webdriver.ie.driver", ConfigDataProvider.IEPath()); 
     driver = new InternetExplorerDriver(); 
    } 

    driver.manage().window().maximize(); 
    driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); 
    return driver; 
} 

public void ShutDown(WebDriver driver) 
{ 
    driver.quit(); 
} 

}

パブリッククラスFlipkart_Login {webdriverをドライバ。

public Flipkart_Login(WebDriver driver) 
{ 
    this.driver=driver; 
} 

@FindBy(xpath="//a[text()='Log In']") WebElement Login_Click; 
@FindBy(xpath="//input[@class='_2zrpKA' and @type='text']") WebElement Enter_Email; 
@FindBy(xpath="//input[@class='_2zrpKA _3v41xv' and @type='password']") WebElement Enter_Pass; 
@FindBy(xpath="//button[@type='submit' and @class='_3zLR9i _1LctnI _36SmAs']") WebElement Login_Button; 

public void Valid_Login() 
{ 
    Login_Click.click(); 
    Enter_Email.sendKeys("[email protected]"); 
    Enter_Pass.sendKeys("xxx"); 
    Login_Button.click(); 

} 

}

パブリッククラスTest_Flipkart_Login {webdriverをドライバ。

@Test 
public void Flipkart_Login_Test() 
{ 
    driver = BrowserFactory.getBrowser("Firefox"); 
    driver.get(ConfigDataProvider.getURL()); 
    Flipkart_Login page1 = PageFactory.initElements(driver, Flipkart_Login.class); 
    page1.Valid_Login(); 

} 

}

答えて

0

あなたはCOnfigDataProiderのコンストラクタでプロのプロパティを初期化してきていますが、あなたのテストクラスからgetURLメソッドへの静的呼び出しを使用しています。したがって、proはnullになり、初期化されません。スタティックコールを削除し、コンストラクタを使用するか、またはスタティックブロックでスタティックと初期化を行います。

関連する問題