当前位置: 首页 > 知识库问答 >
问题:

使用POI和TestNG在Selenium中进行数据驱动测试。代码获取错误

景志
2023-03-14

使用Selenium,我编写了下面的代码,从Excel表中读取数据,并在电子邮件中键入密码,进入Facebook的登录页面。错误是使用try/catch时未处理的表达式。我如何解决这个问题?

package Excelpack;

import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.Test;
import org.testng.annotations.DataProvider;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.AfterTest;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

 public class ClassTwo {

    WebDriver driver;

     String username;
     String password;

     @Test(dataProvider="testdata")
     public void testFireFox(String uname, String password1){

      driver.findElement(By.id("email")).clear();
      driver.findElement(By.id("email")).sendKeys(uname);
      driver.findElement(By.id("pass")).clear();
      driver.findElement(By.id("pass")).sendKeys(password1); 

     }   

    @DataProvider(name="testdata")
    public  Object[][] TestDataFeed1()  
    {

          FileInputStream fis=new FileInputStream("D:\\book3.xlsx");
          XSSFWorkbook wb=new XSSFWorkbook(fis);
          XSSFSheet sh1= wb.getSheetAt(0);
         int  numrow = sh1.getLastRowNum()-sh1.getFirstRowNum();  
           int  colnum =sh1.getRow(1).getLastCellNum()+1; 
             Object [][] facebookdata=new Object[numrow][colnum];
      for(int i=0;i<numrow;i++)
      {

         facebookdata[i][0]=sh1.getRow(0).getCell(i).getStringCellValue();
         facebookdata[i][1]=sh1.getRow(1).getCell(i).getStringCellValue();   

      }
        return facebookdata;
    }



  @BeforeTest
  public void Setup(){
  driver=new FirefoxDriver();
  driver.manage().window().maximize();
  driver.get("https://www.facebook.com/");
  }
}

共有1个答案

常献
2023-03-14

如果您使用的是任何IDE(如eclipse或intellijI),那么IDE将提示您添加“throws必要的异常”或在try/catch中编写代码块。从代码的外观来看,似乎需要在dataprovider TestDataFeed1上声明throws异常。

 类似资料:
  • 我是TestNG框架的新手。请指导如何使用Apache POI(Excel)参数化测试用例。

  • 我正在尝试使用2个xml文件与Maven并行运行我的测试,但似乎不起作用。我已经尝试了Maven留档中的步骤/参数:http://maven.apache.org/surefire/maven-surefire-plugin/examples/testng.html 以下是我的pom.xml文件: 这是功能1.xml文件: 我应该做哪些参数/更改才能使其生效? 谢谢你

  • 问题内容: 您如何在jUnit中编写数据驱动的测试? (我的定义)数据驱动测试是一种从某些外部源(文件,数据库等)读取数据,每行/文件/任何内容执行一个测试,并将结果显示在测试运行程序中的测试,就像您进行了单独的测试- 每次运行的结果将单独显示,而不是汇总显示。 问题答案: 在JUnit4中,您可以使用Parameterized testrunner进行数据驱动的测试。 它的文档记录不是很好,但是

  • 然而我却遇到了错误。我无法确定错误发生的确切位置,但我从结果树中获得了如下错误消息: 对于JSR223采样器 响应消息:javax.script.scriptException:源文件:内联计算:import org.apache.poi.xssf.usermodel.xssfworkbook;导入org.apache.poi.xssf.us。..“:INTEGER.parseint(vars.g

  • 问题是,如果我使sqlService,Grails依赖项注入不起作用,它只创建一个空对象。如果我尝试将其设置为静态(如),情况也是如此。 我尝试将一个新的SqlService实例小型化,就像我的setupSpec块中所示: 这只是给出了一个错误 有人知道我如何在Spock测试中使用另一个服务类作为数据提供者吗?