java - 如何使用 Selenium WebDriver TestNG 数据提供程序方法从 Excel 工作表读取特定值?

标签 java excel selenium testng-dataprovider testng-eclipse

以下是代码:-

package sanityTests;

import java.io.File;
import java.io.IOException;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.Assert;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;


import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;

public class DataDrivenTest2 {


    @Test (dataProvider= "testdata")  //attribute

    public void add(String x , String y){
        int a= Integer.parseInt(x);   //Convert String to integer
        int b = Integer.parseInt(y);
        int z=a+b;
        System.out.println(z);
    }


    @DataProvider(name="testdata")   //annotation for TestNG


    public Object [] [] readExcel() throws BiffException, IOException   //Way of Object Declaration of Array.Main Method Removed because of test NG Framework
{       

        File f = new File("C:/Users/Ishan/Desktop/Input2.xls");  //Create File Object to locate file on system
        Workbook w = Workbook.getWorkbook(f); //Activate the Workbook
        Sheet s = w.getSheet(0);  //Activate Sheet (either by name or id). Id starts with 0
        int rows= s.getRows() ; //Get Row Count
        System.out.println(rows); //Get Column Count
        int columns = s.getColumns();
        System.out.println(columns);

    String InputData[] [] = new String [rows] [columns];  //Array to read data from excel file

    for(int i=0; i<rows; i++){
        for(int j=0; j<columns;j++){
            Cell c =s.getCell(j, i);  // Getting location of cell

            InputData[i][j] =c.getContents();
        System.out.println(InputData[i][j]);


    }

}
    return InputData;
}
}

现在它返回输入 Excel 中提到的所有值以及值的总和。以下是输入值

1 2 3 4 5 6

现在我只想从特定行和列(例如第 1 行、第 1 列)中选择值,然后将它们相加并显示总和。我尝试在输入数据字段中输入 1,1,但没有得到输出。请帮忙。

最佳答案

如果您想要来自特定单元格的数据,那么您可以这样做:

        File f = new File("/Users/Pankaj/Desktop/QA_Automation/qascripting/Stacks/files/Input2.xls");  //Create File Object to locate file on system
        Workbook w = Workbook.getWorkbook(f); //Activate the Workbook
        Sheet s = w.getSheet(0);  //Activate Sheet (either by name or id). Id starts with 0
        int rows= s.getRows() ; //Get Row Count
        int columns = s.getColumns();

        //sheet's columns and rows are started with (column = 0, row = 0)
        int firstColumn = 0;
        int secondColumn = 1;
        int secondRow = 1;

        int firstColumnData = Integer.parseInt(s.getCell(firstColumn, secondRow).getContents());
        int secondColumnData = Integer.parseInt(s.getCell(secondColumn, secondRow).getContents());

        int desiredData = firstColumnData + secondColumnData;

        System.out.println("First Column: "+firstColumnData + " Second Column Data: "+secondColumnData + " Sum Data: "+desiredData);

关于java - 如何使用 Selenium WebDriver TestNG 数据提供程序方法从 Excel 工作表读取特定值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35969338/

相关文章:

python - 什么定义了 Excel.Application COM 对象连接到哪个 Excel 实例?

MYSQL SELECT AVG() of rows that meet certain conditions in 中满足某些条件的行

java - 需要帮助来点击一个函数

ruby-on-rails - authlogic 在使用 selenium 驱动程序时无法与 capybara 一起工作

java - 使用无限索引填充数组 - Java

java - HtmlEmail 中用于将邮件设置为多个收件人的 setTo 方法存在问题

java - 使用 FieldMethodizer 访问静态文件打印 "Could not add x for field methodizing: x"

excel - 如何从 excel 读取到 matlab 并使用这些信息来查找一些变量

java - 新浏览器选项卡打开,在 SELENIUM WEBDRIVER JAVA 后找不到 WebELements

java - 为什么我的整数增加了 2 而不是 1? java