首页 > 解决方案 > 访问被拒绝异常:testNG java.IOException

问题描述

我是 selenium 自动化测试的
新手在 java maven 项目中执行 testNG 代码时,我遇到了以下问题:

[Utils] [ERROR] Access is denied
*java.io.IOException*: Access is denied
    at java.io.WinNTFileSystem.createFileExclusively(Native Method)
    at java.io.File.createNewFile(Unknown Source)
    at org.testng.internal.Utils.writeFile(*Utils.java:176*)
    at org.testng.internal.Utils.writeFile(*Utils.java:149*)
    at org.testng.reporters.SuiteHTMLReporter.generateTableOfContents(SuiteHTMLReporter.java:611)
    at org.testng.reporters.SuiteHTMLReporter.generateReport(SuiteHTMLReporter.java:69)
    at org.testng.TestNG.generateReports(TestNG.java:1097)
    at org.testng.TestNG.run(TestNG.java:1022)
    at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
[Utils] [ERROR] Access is denied
java.io.IOException: Access is denied
    at java.io.WinNTFileSystem.createFileExclusively(Native Method)
    at java.io.File.createNewFile(Unknown Source)
    at org.testng.internal.Utils.writeFile(Utils.java:176)
    at org.testng.internal.Utils.writeFile(Utils.java:149)
    at org.testng.reporters.SuiteHTMLReporter.generateXmlFile(*SuiteHTMLReporter.java:101*)
    at org.testng.reporters.SuiteHTMLReporter.generateReport(*SuiteHTMLReporter.java:79*)
    at org.testng.TestNG.generateReports(*TestNG.java:1097*)
    at org.testng.TestNG.run(TestNG.java:1022)
    at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
[Utils] [ERROR] Access is denied
java.io.IOException: Access is denied
    at java.io.WinNTFileSystem.createFileExclusively(Native Method)
    at java.io.File.createNewFile(Unknown Source)
    at org.testng.internal.Utils.writeFile(Utils.java:176)
    at org.testng.internal.Utils.writeFile(Utils.java:149)
    at org.testng.reporters.SuiteHTMLReporter.generateIndex(SuiteHTMLReporter.java:170)
    at org.testng.reporters.SuiteHTMLReporter.generateReport(SuiteHTMLReporter.java:82)
    at org.testng.TestNG.generateReports(TestNG.java:1097)
    at org.testng.TestNG.run(TestNG.java:1022)
    at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)

我的分类如下所示:TestBase.java

public class TestBase {
public static WebDriver driver=null;
public static Properties prop;

public TestBase() {
    try {
        prop = new Properties();
        FileInputStream ip = new FileInputStream(
                System.getProperty("user.dir")+"\\src\\main\\java\\com\\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.equalsIgnoreCase("chrome")) {
        System.setProperty("webdriver.chrome.driver", "E:\\Automation_Testing\\AutomationTest\\chromedriver.exe");
        driver = new ChromeDriver();
    } else if (browserName.equalsIgnoreCase("firefox")) {
        driver = new FirefoxDriver();
    }
    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"));
}
}

在本课程中,我编写了执行代码以在我的应用程序中创建一个学生。类名:StudentPageTest.java

 public class StudentPageTest extends TestBase{

LoginPage loginpage;
 StudentPage studentpage;

 public StudentPageTest() throws Exception {
    super();
}

@BeforeTest
public void setUp() throws IOException {
    initialization();
    loginpage = new LoginPage();
    studentpage = new StudentPage();
}

@Test(priority = 1)
public void loginTest() throws InterruptedException {
    loginpage.login(prop.getProperty("username"), prop.getProperty("password"));
}

@Test(priority = 2)
public void addStudent() throws InterruptedException, IOException {

    studentpage = new StudentPage();
    Thread.sleep(8000);
    studentpage.clickBy(studentpage.studentMenu);
    Thread.sleep(10000);
    studentpage.add_student();
}
}

我正在调用这个方法来添加学生这个方法的功能是它应该在我的应用程序中创建一个学生

public void add_student() throws InterruptedException, IOException {

    clickBy(add_studentBtn);
    Thread.sleep(10000);

    sendText(stud_name, "Nayan");
    Thread.sleep(2000);

    sendText(stud_contactnum, "4565434455");
    Thread.sleep(2000);

    sendText(stud_email, "n1@gmail.com");
    Thread.sleep(2000);

    sendText(parentname, "Prakash");
    Thread.sleep(2000);

    sendText(parent_contactnum, "5543654344");
    Thread.sleep(2000);

    sendText(parent_email, "prksh@gmail.com");
    Thread.sleep(2000);

    clickBy(assigncourselink);



}

如果您需要更多分析,请发表评论。

标签: javamavenselenium-webdrivertestng

解决方案


运行 TestNG 时,抛出一条不一致的错误消息“Test NG java.io.IOException: Access is denied”


推荐阅读