2016-05-01 19 views
-1

erhalten Ich bekomme den Null-Zeiger-Fehler im folgenden Code. Wenn Sie den Code ausführen, wird der ganze Code ausgeführt, bevor der Code, in dem ich 'captureScreenshot()' erwähnt habe, danach nicht mehr ausgeführt wird.NULL-Pointer-Ausnahme beim Ausführen meines Codes

package rough; 

import java.io.File; 
import java.io.IOException; 
import java.util.Calendar; 
import java.util.GregorianCalendar; 
import java.util.concurrent.TimeUnit; 

import org.apache.commons.io.FileUtils; 
import org.openqa.selenium.By; 
import org.openqa.selenium.OutputType; 
import org.openqa.selenium.TakesScreenshot; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.firefox.FirefoxDriver; 



public class TestEmailAndScreenshot1 { 

public static WebDriver dr; 
public static String mailscreenshotpath; 

public static void captureScreenshot(){ 


    Calendar cal = new GregorianCalendar(); 
    int month = cal.get(Calendar.MONTH); 
    int year = cal.get(Calendar.YEAR); 
    int sec = cal.get(Calendar.SECOND); 
    int min = cal.get(Calendar.MINUTE); 
    int date = cal.get(Calendar.DATE); 
    int day = cal.get(Calendar.HOUR_OF_DAY); 


    File scrFile = ((TakesScreenshot)dr).getScreenshotAs(OutputType.FILE); 
    try { 
     mailscreenshotpath =   System.getProperty("user.dir")+"\\screenshot\\"+year+"_"+date+"_"+(month+1)+"_"+day+"_"+min+"_" +sec+".jpeg"; 
     FileUtils.copyFile(scrFile, new File(mailscreenshotpath)); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 

     } 
} 



public static void main(String[] args) { 

    WebDriver dr=new FirefoxDriver(); 
    dr.manage().window().maximize();  
    dr.manage().timeouts().implicitlyWait(10L, TimeUnit.SECONDS); 
    dr.get("http://gmail.com"); 
    dr.findElement(By.id("Email")).sendKeys("vijenderchhoker92"); 
    captureScreenshot(); 
System.out.println(" Screenshot taken successfully...."); 

} 

} 

Antwort

0

Wenn Sie

WebDriver dr = new FirefoxDriver(); 

In main verstecken Sie die public static WebDriver dr; Variable, so in captureScreenshot() Methode es noch null ist und Sie bekommen die Fehler versuchen, es zu benutzen. Ändern Sie zu

public static void main(String[] args) { 
    dr = new FirefoxDriver(); 
    dr.manage().window().maximize(); 
    //... 
} 
Verwandte Themen