Selenium - 将Web元素ID存储在电子表格中,在测试中从电子表格中调用ID?

Posted

技术标签:

【中文标题】Selenium - 将Web元素ID存储在电子表格中,在测试中从电子表格中调用ID?【英文标题】:Selenium - store web element id in a spreadsheet, call the id from the spreadsheet in test? 【发布时间】:2016-11-09 09:55:06 【问题描述】:

所以我试图在 Excel 电子表格中存储一个网络元素,例如 id,然后我想从工作表中调用 id 并将其放入测试中。

这行得通吗?理论上,技术知识较少的其他人可以在我的工作场所修改测试而无需编辑代码。

我正在使用以下代码从电子表格中读取数据并将单元格数据放入字符串中。

    File src=new File("C:\\Users\\Admin\\Documents\\ExcelData\\TestData.xlsx");
    FileInputStream fis=new FileInputStream(src);

    XSSFWorkbook wb=new XSSFWorkbook(fis);
    XSSFSheet sheet1=wb.getSheetAt(0);

    String data0=sheet1.getRow(0).getCell(0).getStringCellValue();

例如,我遇到的困难是在测试时。

driver.findElement(By.name("q")).sendKeys("Java");

如果我用

替换它

driver.findElement(By.name(data0).sendKeys("Java");

这行不通。

【问题讨论】:

应该,但这是最好的选择吗?请先做一些研究,添加您尝试过的代码并更具体。我认为您可以找到比 excel 更好的其他类型的文件。查看类似问题***.com/questions/15641666/… 感谢您抽出宝贵时间回复劳达。客户要求我专门使用电子表格来存储数据,然后他们将编辑单元格,例如单元格 C3 从“x”到“y”,以更改他们正在自动化的文本框。这个想法是代码将在测试中为 id 调用单元格 C3。抱歉,如果我的问题很愚蠢,但我真正使用 Java/Selenium 才几周。 你需要找到一个可以帮助你从 excel 中读取的库,检查 fire 库,看看哪个是最简单的,还可以检查 java 和 excel 的类似问题***.com/questions/1516144/…跨度> 我认为这不是一个好方法,因为在极少数情况下,ID 会在 html 中发生变化。虽然跟踪和测试中的任何更改都会使事情变得复杂,但这意味着您必须小心处理 excel 表并并排测试。 我一直在使用 Apache POI 读取电子表格。以下代码运行良好。文件 src=new File("C:\\Users\\Admin\\Documents\\ExcelData\\TestData.xlsx"); FileInputStream fis=new FileInputStream(src); XSSFWorkbook wb=new XSSFWorkbook(fis); XSSFSheet sheet1=wb.getSheetAt(0); String data0=sheet1.getRow(0).getCell(0).getStringCellValue();这会读取电子表格并将单元格中的数据存储在“data0”中 【参考方案1】:

是的,您可以按照您的要求从外部工作表中获取输入数据。 这可以使用 Apache POI Jars 支持来完成。 希望您使用 Java 进行编码。 下面的链接为您提供了足够的代码来满足您的要求。 -> Apache POI Examples

从 Excel 读取数据的代码。

File file= new File(PATH);
FileInputStream inputStream = new FileInputStream(file);
Workbook workbook =new XSSFWorkbook(inputStream);
Sheet sheet = workbook.getSheet(SHEETNAME);
String[][] number=new String[10][10]; // temp array
for(int i=0;i<rowCount+1;i++)
    
        Row row=s.getRow(i);        
        for(int j=0;j<=row.getLastCellNum();j++)
        
             number[i][j]=  row.getCell(j).toString(); // works only for cells of string type
         
    

然后你从数字数组中获取数据。

【讨论】:

感谢您的回复。我已经设法从已经使用 Apache POI 的电子表格中读取数据,但我正在努力将变量传递到测试中,以便在页面上找到 Web 元素。 @Russ ,您需要提供一些您尝试过的代码/遇到的异常

以上是关于Selenium - 将Web元素ID存储在电子表格中,在测试中从电子表格中调用ID?的主要内容,如果未能解决你的问题,请参考以下文章

无法使用selenium在PayPal Sandbox中插入电子邮件

selenium-xpath选择操作web元素

如何设置“值”以使用 selenium 输入 Web 元素?

Java selenium 抓取元素的整个 html 内容

java selenium 元素定位大全

Web自动化测试 四 ----- python selenium 八大元素定位