Java 无法执行selenium testng代码(FileNotFoundException)

Java 无法执行selenium testng代码(FileNotFoundException),java,eclipse,excel,selenium,Java,Eclipse,Excel,Selenium,我已经编写了dataprovider、testobjects和testcase类,当我尝试在eclipse中运行时,会出现以下错误 我在src/test/resources路径中拖放了excel工作表、ie和chrome驱动程序。请让我知道这是在eclipse中将文件添加到资源中的正确方法 提前谢谢 错误: java.lang.RuntimeException: java.io.FileNotFoundException: G:\Selenium%20Docs\Selenium%20Setup\

我已经编写了dataprovider、testobjects和testcase类,当我尝试在eclipse中运行时,会出现以下错误

我在src/test/resources路径中拖放了excel工作表、ie和chrome驱动程序。请让我知道这是在eclipse中将文件添加到资源中的正确方法

提前谢谢

错误:

java.lang.RuntimeException: java.io.FileNotFoundException: G:\Selenium%20Docs\Selenium%20Setup\SeleniumLearning\target\test-classes\rediff_book_login.xls (The system cannot find the path specified)

    at org.testng.internal.MethodInvocationHelper.invokeDataProvider(MethodInvocationHelper.java:161)

    at org.testng.internal.Parameters.handleParameters(Parameters.java:429)

    at org.testng.internal.Invoker.handleParameters(Invoker.java:1383)

    at org.testng.internal.Invoker.createParameters(Invoker.java:1075)

    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1180)

    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)

    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)

    at org.testng.TestRunner.privateRun(TestRunner.java:767)

    at org.testng.TestRunner.run(TestRunner.java:617)

    at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)

    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)

    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)

    at org.testng.SuiteRunner.run(SuiteRunner.java:240)

    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)

    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)

    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)

    at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)

    at org.testng.TestNG.run(TestNG.java:1057)

    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:111)

    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204)

    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175)

如果您的Excel文件位于类路径中,只需通过

getClass().getResourceAsStream("/rediff_book_login.xls");
。。。在测试用例中,上面的斜杠标记了目录src/test/resources


如果这没有帮助,请提供一个代码片段,向我们展示您的文件加载实现。

遵循上述提供的解决方案,或将您的文件rediff\u book\u login.xls保存在位置G:\Selenium%20Docs\Selenium%20Setup\SeleniumLearning\target\test classes\

尝试编写如下代码:

String filepath= "G:\\Selenium Docs\\Selenium Setup\\SeleniumLearning\\target\\test-classes\\rediff_book_login.xls"; FileInputStream file = new FileInputStream(new File(filepath));
或者您也可以尝试:

String filepath= "G:\\Selenium Docs\\Selenium Setup\\SeleniumLearning\\target\\test-classes\\rediff_book_login.xls"; FileInputStream file = new FileInputStream(filepath);

您好,感谢您抽出时间回答我。我使用以下方式加载文件://获取文件字符串filePath=ClassLoader.getSystemResourcerediff\u book\u login.xls.getFile的路径;//获取文件=新文件路径;//文件输入流FileInputStream fis=新文件输入流文件//Work book HSSFWorkbook wb=新的HSSFWorkbook fis-请让我知道这是否有任何错误。要创建文件对象,请使用我上面的答案或以下方式:new file.class..getResourceAsStream/rediff_book_login.xls.getFile;您评论中的其余部分与我选择的方式完全相同,只是我将XSSFWorkbook用于xlsx文档,但这在这里并不重要;当然也可以,但是正如你所说的,你不需要前导斜杠。。谢谢:当我按照您的建议打开路径时,文件“rediff\u book\u login.xls”已经存在了。。是否有其他方法可以解决此问题请尝试以下代码:String filepath=G:\\Selenium Docs\\Selenium Setup\\SeleniumLearning\\target\\test classes\\rediff\u book\u login.xls;FileInputStream file=newfileinputstreamnewfilepath;或者您也可以尝试:String filepath=G:\\Selenium Docs\\Selenium Setup\\SeleniumLearning\\target\\test classes\\rediff\u book\u login.xls;FileInputStream文件=新的FileInputStreamfilepath;很好。谢谢您: