使用Selenium WebDriver运行以下脚本时获取Null指针异常

时间:2018-03-13 12:35:55

标签: java selenium

public class TestBase {
    public static WebDriver driver = null;
    public static Properties prop = null;
    public TestBase() {
        try {
            prop = new Properties();
            FileInputStream ip = new FileInputStream("C:\\seleniumFolder\\SampleMavenProject\\src\\main\\java\\com\\crm\\qa\\config\\config.properties");
            prop.load(ip);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    public static void initialization() {
        String browsername = prop.getProperty("browser");
        if (browsername.equals("chrome")) {
            System.setProperty("webdriver.chrome.driver", "C:\\seleniumFolder\\chromedriver.exe ");
            driver = new ChromeDriver();
        }
        driver.manage().window().maximize();
        driver.manage().deleteAllCookies();
        driver.manage().timeouts().pageLoadTimeout(TestUtil.PAGE_LOAD_TIMEOUT, TimeUnit.SECONDS);
        driver.manage().timeouts().implicitlyWait(TestUtil.IMPLICIT_WAIT, TimeUnit.SECONDS);
        driver.get(prop.getProperty("url"));
    }
}

1 个答案:

答案 0 :(得分:0)

似乎您的FileInputStream ip未初始化。您必须提供(\\)而不是(\),如下所示:

FileInputStream ip = new FileInputStream("C:\\seleniumFolder\\SampleMavenProject\\src\\main\\java\com\\crm\\qa\\config\\config.properties");

更新

您看到java.lang.NullPointerException因为要执行 Java程序,您必须通过main()方法或@Test带注释的方法启动执行(如果使用TestNG )。

因此,如果您想通过main()方法执行此程序,则必须将public static void initialization()方法的当前代码放入public static void main(String[] args)方法,并将该程序作为 Java程序执行

您可以在How to write Selenium Java Application code in IDE through main() and TestNG

中找到详细的讨论