2014-12-08 77 views
-2

類登錄爲以下方法Kreato_Login(): -異常在線程 「主」 顯示java.lang.NullPointerException在硒的webdriver

public void Kreato_Login(){ 
     driver = new FirefoxDriver(); 
     baseUrl = "https://testrugtn.kreatocrm.com/"; 
     driver.manage().timeouts().implicitlyWait(30, TimeUnit. SECONDS); 
     driver.manage().window().maximize(); 
     driver.get(baseUrl + "/"); 
     driver.findElement(By. id("Login_txtUserName")).clear(); 
     driver.findElement(By. id("Login_txtUserName")).sendKeys("saravana"); 
     driver.findElement(By. id("Login_txtPassword")).clear(); 
     driver.findElement(By. id("Login_txtPassword")).sendKeys("5678"); 
     driver.findElement(By. id("Login_btnLogin")).click(); 

} 

鉛類如下面的方法 「Lead_MandatoryCheck()」: -

LoginLogout leadInstance=new LoginLogout(); 
public void Lead_MandatoryCheck() throws InterruptedException{ 
    leadInstance.Kreato_Login(); 
    driver1.findElement(By. xpath("//a[contains(text(),'Customers')]")).click(); 
    driver1.findElement(By. linkText("Leads")).click(); 
    //Add New 
    driver1.findElement(By. cssSelector("#ctl00_ContentPlaceHolder1_cbpSubContent_imgAddNew_CD > span.dx-vam")).click(); 
    Thread.sleep(3000); 
    //Save 
    driver1.findElement(By. cssSelector("#ctl00_ContentPlaceHolder1_cbpAssociationNew_btnNewItemTopCreationSave_CD > span.dx-vam")).click(); 
    String mandatoryPopup= driver1.switchTo().alert().getText(); 
    driver1.switchTo().alert().accept(); 
    System.out.println(mandatoryPopup); 

} 

我打電話從類觸發上述方法如下: -

public class TriggerClass { 

public static void main(String[] args) throws Exception { 
    // TODO Auto-generated method stub 
     /*LeadCreation lc= new LeadCreation(); 
     lc.setUp(); 
     lc.testLeadCreation(); 
     lc.tearDown();*/ 
    LeadModule Lm=new LeadModule(); 
    Lm.Lead_MandatoryCheck(); 
} 

當我運行 「Trigger.class」

Exception in thread "main" java.lang.NullPointerException 
at workflow.LeadModule.Lead_MandatoryCheck(LeadModule.java:132) 
at workflow.TriggerClass.main(TriggerClass.java:13) 
+1

你使用2個不同的webdriver實例嗎?司機和司機1? – Paras 2014-12-08 09:27:07

+0

什麼是變量「BaseURL」的類型? – 2014-12-08 09:29:27

+0

LoginLogout leadInstance = new LoginLogout(); LoginLogout類的定義是什麼? – 2014-12-08 09:49:42

回答

1

這是你如何組織你的類,部件及功能:

TriggerClass.java:

public class TriggerClass { 

public static WebDriver driver; 

public static void main(String[] args) throws Exception { 
    driver = new FirefoxDriver(); 
    LeadModule Lm=new LeadModule(); 
    Lm.Lead_MandatoryCheck(); 
} 

LeadModule.java:

public class LeadModule { 

    public WebDriver driver; 

    public LeadModule() { 
     this.driver = TriggerClass.driver; 
    } 

    public void Lead_MandatoryCheck() throws InterruptedException{ 
     LoginLogout leadInstance = new LoginLogout(); 
     leadInstance.Kreato_Login(); 
     driver.findElement(By.xpath("//a[contains(text(),'Customers')]")).click(); 
     driver.findElement(By.linkText("Leads")).click(); 
     //Add New 
     driver.findElement(By.cssSelector("#ctl00_ContentPlaceHolder1_cbpSubContent_imgAddNew_CD > span.dx-vam")).click(); 
     Thread.sleep(3000); 
     //Save 
     driver.findElement(By. cssSelector("#ctl00_ContentPlaceHolder1_cbpAssociationNew_btnNewItemTopCreationSave_CD > span.dx-vam")).click(); 
     String mandatoryPopup= driver.switchTo().alert().getText(); 
     driver.switchTo().alert().accept(); 
     System.out.println(mandatoryPopup); 

    } 

LoginLogout.java:

public class LoginLogout extends LeadModule { 

public void Kreato_Login(){ 
     baseUrl = "https://testrugtn.kreatocrm.com/"; 
     driver.manage().timeouts().implicitlyWait(30, TimeUnit. SECONDS); 
     driver.manage().window().maximize(); 
     driver.get(baseUrl + "/"); 
     driver.findElement(By.id("Login_txtUserName")).clear(); 
     driver.findElement(By.id("Login_txtUserName")).sendKeys("saravana"); 
     driver.findElement(By.id("Login_txtPassword")).clear(); 
     driver.findElement(By.id("Login_txtPassword")).sendKeys("5678"); 
     driver.findElement(By.id("Login_btnLogin")).click(); 

} 

} 

你的Java /硒基礎知識都不清楚。請閱讀文檔或查看YouTube上的相關教程。

+0

我試過上面的代碼,我跑。但 「(LoginLogout.java:8) \t在workflow.LeadModule (LeadModule.java:14) java.lang.StackOverflowError的 \t在workflow.LoginLogout。 」 – Saravana 2014-12-08 13:01:25

+0

StackOverflow上說:「 異常線程」 爲主。 。哈哈,真是巧合。 BTW,更新了LeadModule()構造函數中的代碼。將LoginLogout類對象聲明移至Lead_Mandatory_Check()方法。 – 2014-12-08 13:44:10

相關問題