无法找到属性文件Java和TestNG

时间:2017-07-28 08:08:48

标签: java maven selenium-webdriver testng

已经尝试过这个解决方案,但还没有运气:

  

Cannot load properties file from resources directory

我的代码:

protected WebDriver driver;
public static Properties prop;    

@BeforeSuite
    public void setup()
    {

        ChromeOptions options = new ChromeOptions();
        options.addArguments("--disable-notifications");

        System.setProperty("webdriver.chrome.driver","E:\\chromedriver.exe");
        driver = new ChromeDriver(options);

        //Calling property file function here
        ReadData();

        driver.get(prop.getProperty("URL"));

    }

    public void ReadData()
        {  prop = new Properties();
            try {
                prop.load(new FileInputStream("D:\\projectname\\src\\main\\resources\\DataFile.properties"));
            } catch (IOException e) {
                e.printStackTrace();
            }}

获得例外:

  

java.io.FileNotFoundException

文件已经存在,我尝试过很多差异。文件路径如完整路径,路径从src等开始。

项目结构:

  

http://prntscr.com/g1bpq2

更新:

  1. 当我从文件路径中删除.properties扩展名时,它可以正常工作。
  2. 我还不确定为什么intellij没有将文件扩展名添加为.properties。因为我确信我创建的文件类型为properties

2 个答案:

答案 0 :(得分:2)

以下是您的问题的答案:

而不是:

prop.load(new FileInputStream("D:\\projectname\\src\\main\\resources\\DataFile.properties"));

你可以尝试:

prop.load(new FileInputStream("./src/main/resources/DataFile.properties"));

如果这回答你的问题,请告诉我。

答案 1 :(得分:1)

您需要在java中使用\\来提供如下所示的绝对路径: -

D:\\Demo_Login\\src\\main\\resources\\DataFile.properties

您可以使用File.separator代替\\

OR

您可以执行以下操作: -

        File src=new File("src\\lib\\phantomjs\\phantomjs.exe");

        System.setProperty("phantomjs.binary.path",src.getAbsolutePath());

OR

您可以使用从项目根目录中启动目录的.来尝试类似下面的内容: -

System.setProperty("webdriver.chrome.driver","./src"+File.separator+"lib"+File.separator+"chromedriver.exe")

OR

从这样的src开始: -

"src/main/resources/DataFile.properties"

希望它会对你有所帮助:)。