首页 > 解决方案 > 文件更新,然后使用 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. 点击按钮上传

标签: javaseleniumfile

解决方案


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

你写了:

FileInputStream fis = new FileInputStream(excelPath);

请尝试:

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

推荐阅读