有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用java在Selenium中更新文件,然后上载文件

我有一个场景,首先使用一个测试用例(测试用例1)用特定值更新excel列,然后在下一个测试用例(测试用例2)中使用该文件进行上传。我能够成功地更新文件,也能够浏览文件上传。问题是没有从文件中读取内容。我只需要打开创建的excel文件并手动执行保存操作,然后在运行与上载相关的测试(测试用例2)时,它就可以正常工作。我不确定是什么导致了这个问题。如果有人能支持这个问题,那将是非常有帮助的

以下是测试步骤

  1. 更新文件列值-代码段

    public void setColValues(String fileName, String sheetName, int colIndex, List<Integer> sData) {
         try {
             String excelPath = System.getProperty("director to file path");
             FileInputStream fis = new FileInputStream(excelPath);
             XSSFWorkbook workbook = new XSSFWorkbook(fis);
             XSSFSheet sh = workbook.getSheet(sheetName);
    
             int rowCount = sh.getLastRowNum();
             logger.info(rowCount);
             int index = 0;
             for (int rowCounter = 2; rowCounter <= rowCount; rowCounter++) {
                 sh.getRow(rowCounter).getCell(colIndex).setCellValue(sData.get(index));
                 index++;
             }
             fis.close();
             FileOutputStream fos = new FileOutputStream(new File(excelPath), false);
             workbook.write(fos);
             workbook.close();
             fos.close();
             fis.close();
         } catch (Exception e) {
             e.printStackTrace();
         }
     }
    
  2. 转到特定的URL

  3. 单击浏览按钮并传递文件路径

  4. 点击按钮上传


共 (1) 个答案

  1. # 1 楼答案

    这可能是因为您没有将File实例传递给FileInputStream构造函数

    你写道:

    FileInputStream fis = new FileInputStream(excelPath);
    

    请尝试:

    FileInputStream inputStream = new FileInputStream(new File(excelPath));