【问题标题】:Selenium code to input values to text boxes from excel by opening browser single timeSelenium 代码通过单次打开浏览器从 excel 向文本框输入值
【发布时间】:2014-12-06 08:48:51
【问题描述】:

我编写了一个 selenium 代码来从包含 2 列的 excel 表中读取值。我需要将这些输入到网页中的 2 个文本框中。此时我不想使用 TestNG。我的问题是每次浏览器打开每个条目的网页,即每一行。假设我在 excel 表中有 10 行,打开了 10 个网页,每个网页都会输入到文本框。如何重写我的代码以打开单个浏览器并逐个输入值。

  public class Insert {
  public static void main(String[] args)

{   
try {
        FileInputStream fis = new FileInputStream("F:\\Book4.xlsx");
        XSSFWorkbook wb = new XSSFWorkbook(fis);

           XSSFSheet sheet = wb.getSheet("testdata");

        for(int count = 1;count<=sheet.getLastRowNum();count++)
        {
            XSSFRow row = sheet.getRow(count);
            System.out.println("Running test case " + row.getCell(0).toString());

            runTest(row.getCell(1).toString(),row.getCell(2).toString());

        }
        fis.close();
    } catch (IOException e) {
        System.out.println("Test data file not found");
    }   
}

public static  void runTest(String name,String mailid) 
{
    WebDriver driver=new FirefoxDriver();
    driver.get("http://www.deal4loans.com/");
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.findElement(By.xpath("html/body/div[4]/div/div/div[1]/a[1]")).click();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

driver.findElement(By.xpath("html/body/div[6]/div[1]/div/div[4]/form/table/tbody/tr[3]/td/table/tbody/tr[1]/td[2]/input")).sendKeys(name);
driver.findElement(By.xpath("html/body/div[6]/div[1]/div/div[4]/form/table/tbody/tr[3]/td/table/tbody/tr[2]/td[2]/input")).sendKeys(mailid);


}
}

【问题讨论】:

    标签: selenium


    【解决方案1】:

    我假设数据如下('--' 用作列的分隔符):

    NAME -- EMAIL-ID
    Name1   -- www.email.com1
    Name2   -- www.email.com2
    Name3   -- www.email.com3
    Name4   -- www.email.com4
    Name5   -- www.email.com5
    Name6   -- www.email.com6
    

    以下代码导航到浏览器一次,并以 2 秒的间隔输入字段。
    [尝试使用带有“HSSFWorkbook”类的 xls 文件时效果很好]

    public class Insert {
        static WebDriver driver;
        public static void main(String[] args) throws InterruptedException
        {   
            driver=new FirefoxDriver();
    
            driver.manage().window().maximize();
            driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
    
            driver.get("http://www.deal4loans.com/");
    
            driver.findElement(By.xpath("html/body/div[4]/div/div/div[1]/a[1]")).click();
    
            try {
                FileInputStream fis = new FileInputStream("F:\\Book4.xlsx");
                XSSFWorkbook wb = new HSSFWorkbook(fis);
    
                XSSFSheet sheet = wb.getSheet("testdata");
    
                for(int count=1;count<=sheet.getLastRowNum();count++)
                {
                    XSSFRow row = sheet.getRow(count);
                    System.out.println("\n----------------------------");
                    System.out.println("Running test case " + count);
    
                    runTest(row.getCell(0).toString(),row.getCell(1).toString());
    
                }
                fis.close();
                driver.close();// Closing the firefox driver instance
            } catch (IOException e) {
                System.out.println("Test data file not found");
            }   
        }
    
        public static  void runTest(String name,String mailid) throws InterruptedException 
        {       
            System.out.println("Inputing name: "+name+" and mailid: "+mailid);
    
            driver.findElement(By.xpath("html/body/div[6]/div[1]/div/div[4]/form/table/tbody/tr[3]/td/table/tbody/tr[1]/td[2]/input")).clear();
            driver.findElement(By.xpath("html/body/div[6]/div[1]/div/div[4]/form/table/tbody/tr[3]/td/table/tbody/tr[2]/td[2]/input")).clear();
    
            driver.findElement(By.xpath("html/body/div[6]/div[1]/div/div[4]/form/table/tbody/tr[3]/td/table/tbody/tr[1]/td[2]/input")).sendKeys(name);
            driver.findElement(By.xpath("html/body/div[6]/div[1]/div/div[4]/form/table/tbody/tr[3]/td/table/tbody/tr[2]/td[2]/input")).sendKeys(mailid);
    
            System.out.println("Inputted name: "+name+" and mailid: "+mailid);
    
            Thread.sleep(2000); // Sleeping 2 seconds so that each entry is detected.
    
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2023-02-17
      • 2022-11-01
      • 2011-01-31
      • 1970-01-01
      • 2019-07-02
      • 1970-01-01
      • 1970-01-01
      • 2013-09-09
      • 1970-01-01
      相关资源
      最近更新 更多