2016-09-28 35 views
-1

我不知何故设法读取使用POI库的Excel,但无法弄清楚如何将它们放入散列表以及将散列图和单元添加到散列表中。还有如何在我的硒脚本中调用它们。我可以从Excel文件而不是属性文件中读取定位器(Web元素,选择器等)吗?

public void readValueFromExcel() 
    { 
     Iterator<Row> rowiterator=shSheet.iterator(); 
     while (rowiterator.hasNext()) 
      { 
      HashMap<String, String> xHashmap = new HashMap(); 
      Row nextRow = rowiterator.next(); 
      Iterator<Cell> celliterator= nextRow.cellIterator(); 
       while (celliterator.hasNext()) 
        { 
        Cell nextCell = celliterator.next(); 
        switch (nextCell.getCellType()) 
         { 
        case Cell.CELL_TYPE_STRING: 
         System.out.print(nextCell.getStringCellValue()); 
         break; 
        case Cell.CELL_TYPE_BOOLEAN: 
         System.out.print(nextCell.getBooleanCellValue()); 
         break; 
        case Cell.CELL_TYPE_NUMERIC: 
         System.out.print(nextCell.getNumericCellValue()); 
         break; 
         } 
        //System.out.print(" - "); 

        } 
       //System.out.println(); 

      } 
+0

为什么不把所有的定位器放在代码中?他们会经常改变吗?您可以将它们放入CSV文件并快速阅读。您甚至可以使用Excel快速创建或编辑CSV文件。 – JeffC

回答

0

创建一个Excel两列文件 - 定位器名称和定位器的值(比如你设定Key = Value在你的属性文件)。创建一个读取该excel文件的方法。搜索给定的键值(定位器名称),然后返回其前一个单元格的值(定位器值)。

此外,您可以编写一个单独的文件,在执行开始时读取excel文件并将其存储到HashMap中,然后您可以根据需要获取所需的定位器值。

通过将定位器的类型也作为第三列并指定天气定位器是名称,ID,xpath或cssId,可以使其更加动态化。在这种情况下,你的方法应该返回“Locator value + type”的附加字符串。你需要编写另一种方法,将重新编译,By,对象分别在excel中输入玷污,你可以在你的代码中使用它driver.findElement...

+0

感谢您的建议。那么我怎样才能从Excel中调用这个值呢?之前我曾经调用getproperty方法并使用目标文件。 –

+0

@SuvinGanjoo查看Apache POI项目以访问Excel文件。很简单... – Grasshopper

+0

感谢您的所有输入。我已经想出了如何使用POI扩展。我唯一想明白的是,如何从@QA Square指定的解析Excel中的数据(例如Xpath等)。在解析Excel中的数据时,是否需要传递driver.findelement中该定位器的行号和列号?例如,我想将第二行和第一列的值用作XPath,我将如何将它传递给driver.findelement?我希望我的问题很清楚? –

相关问题