【问题标题】:Getting Null pointer exception while running the below script using Selenium WebDriver [duplicate]使用 Selenium WebDriver 运行以下脚本时出现空指针异常 [重复]
【发布时间】:2018-03-13 12:35:55
【问题描述】:
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"));
    }
}

【问题讨论】:

  • 您在哪一行看到异常?
  • 你的初始化方法应该考虑else-case。现在,如果浏览器名称不等于“chrome”,它会遇到空指针异常,这很糟糕。此外,考虑到docs.oracle.com/javase/7/docs/api/java/util/…: browsername 可能为 null,因此您的 if-check 应该在文字“chrome”而不是变量 browsername 上调用 equals()。
  • 谢谢!我已经删除了 if 检查并且它现在可以正常工作了。

标签: java selenium


【解决方案1】:

您的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找到详细讨论

【讨论】:

  • 那是我的错,我用来修复代码的格式化程序坏了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多