【问题标题】:Selenium basic framework is not workingSelenium 基本框架不起作用
【发布时间】:2016-06-25 17:48:45
【问题描述】:

我还是 Selenium 的新手,并尝试开发一个基本框架。框架不工作。我使用了 TESTNG 和 DataProvider 注释。

请帮助或建议替代框架/代码。

这是我为读取excel而编写的程序。

@SuppressWarnings("resource")
    public Sheet readExcel(String filePath, String fileName,String sheetName) throws Exception {
        // TODO Auto-generated method stub

        File src = new File(filePath);
        FileInputStream fis = new FileInputStream(src);
        Workbook FlipkartWorkbook = null;
        String fileExtension = fileName.substring(fileName.indexOf(".")); 
        if(fileExtension.equalsIgnoreCase(".xlsx"))
        {
        FlipkartWorkbook = new XSSFWorkbook(fis); //for xlsx file & HSSFWrokbook for xls file
        }
        else if(fileExtension.equalsIgnoreCase("xls"))
        {
            FlipkartWorkbook = new HSSFWorkbook(fis);
        }
        Sheet  FlipkartSheet = FlipkartWorkbook.getSheet(sheetName);
        //XSSFSheet sheet1 = wb.getSheetAt(0);
        return FlipkartSheet;
    }

这是我正在尝试的测试用例。

public class TestCase {

     public WebDriver driver;

    @BeforeMethod
    public void startBrowser()
    {
    File path = new File("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");
    FirefoxBinary ffBinary = new FirefoxBinary(path);
    ProfilesIni allprofs = new ProfilesIni();
    FirefoxProfile firefoxProfile = allprofs.getProfile("Selenium");

/*  firefoxProfile.setPreference("browser.cache.disk.enable", false);
    firefoxProfile.setPreference("browser.cache.memory.enable", false);
    firefoxProfile.setPreference("browser.cache.offline.enable", false);
    firefoxProfile.setPreference("network.http.use-cache", false)*/;

    driver = new FirefoxDriver(ffBinary, firefoxProfile);

    //driver.manage().deleteAllCookies();

    driver.manage().window().maximize();
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    driver.get("https://flipkart.com");

    }

    @Test(dataProvider="FlipkartData")
    public void TestCase_AutoComplete(String searchText, String uselessData) throws Exception
    {   
        Objects obj = new Objects(driver);
        obj.Search(searchText);
        //driver.findElement(By.xpath(".//*[@id='container']/div/div/header/div[2]/div/div[2]/div/form/div/input")).sendKeys("shoes");
    }



    @DataProvider(name="FlipkartData")
    public Object[][] getData() throws Exception
    {
        Object[][] data;
        ReadExcelData file = new ReadExcelData();
        Sheet FlipSheet = file.readExcel("F:\\WORKSPACE\\ZFlipkartPractice\\FlipkartTestData.xlsx","FlipkartTestData.xlsx", "Search Data");
        int lastrow;
        lastrow = FlipSheet.getLastRowNum();
        int rowCount = (FlipSheet.getLastRowNum()- FlipSheet.getFirstRowNum())- 1;
        System.out.println(rowCount);
        data = new Object[rowCount][1];
        for (int i = 0; i < rowCount; i++) 
        {
            //Loop over all the rows
            Row row1 = FlipSheet.getRow(i+1);
            //Create a loop to print cell values in a row
            for (int j = 1; j < 2; j++) 
            {
                //Print excel data in console
                data[i][j] = row1.getCell(j).getStringCellValue();
                System.out.println(data[i][j]);
            }
        }
        System.out.println("");
        return data;
        }

}

【问题讨论】:

  • 您遇到的错误是什么?请分享堆栈跟踪或错误日志
  • java.lang.RuntimeException: java.lang.NullPointerException at org.testng.internal.MethodInvocationHelper.invokeDataProvider(MethodInvocationHelper.java:161)
  • 我尝试使用 jxl jars 读取相同的 excel,我能够做到这一点。但我只能以这种方式读取“.xls”文件。

标签: java selenium frameworks testng


【解决方案1】:

尝试用file.readExcel("F:\\WORKSPACE\\ZFlipkartPractice\\","FlipkartTestData.xlsx", "Search Data");拨打readExcel(String filePath, String fileName,String sheetName)

【讨论】:

    猜你喜欢
    • 2021-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-30
    • 2011-09-16
    • 2020-03-17
    相关资源
    最近更新 更多