使用selenium从字段中检索数据

时间:2014-10-01 04:35:36

标签: java selenium automation

我是自动化测试的初学者(使用Selenium,JavaLang N Eclipse)。

我正在尝试从网页中获取少量值并将其存储在Excel中。

输入值取自excel,输出将存储在excel中。

我目前面临的问题是,让我告诉你一个例子。

首先,它从excel获取帐号123,然后输入搜索字段,然后选择适当的帐户并提取姓名和电子邮件。

其次,下一个帐号说234是从excel获取并输入到搜索字段,然后它获得该帐户的相应名称和电子邮件(234)。

我正在尝试使用两个帐户,就像现在一样。

因此,当我看到输出或者更确切地说打开excel文件时,我只获得两列中的最后一个帐户所有者名称和编号。

我需要的结果是一列中的第一个帐户名和电子邮件,另一列中的第二个帐户名和电子邮件。

我要求所有人帮我解决这个问题!!。

感谢您参与此活动..

int rc= ws.getRows();

以下是代码:

WebElement s1=driver.findElement(By.xpath("//table[@id='kInfo']/tbody/tr[10]/td"));
       //WebElement s1=driver.findElement(By.xpath("//td[@class='tRight']/a"));
          String s2=s1.getText();
          System.out.println("data:"+s2);

          String D1= driver.findElement(By.xpath("//div[@class='vcard clearfix']")).getText();
          System.out.println(D1);
       Thread.sleep(1000);
       /*driver.findElement(By.xpath("//*[@id='homePage']")).click();
       driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
       Thread.sleep(1000);*/

       WritableWorkbook wb1 = Workbook.createWorkbook( new File("C:\\Bhasker-DNT\\Excel\\ouput.xls"));
       WritableSheet ws1 = wb1.createSheet("customsheet", 1);
       {
        for(int count=0;count<4;count++)
        {
            for(int i=0;i<rc-1;i++)
            {
            Label label = new Label(i, 0, s2);
               ws1.addCell(label);

               Label label1 = new Label(i, 1, D1);
               ws1.addCell(label1);
            }           
        }
       //Label label = new Label(0, 0, s2); 
       //ws1.addCell(label);
       }
       wb1.write();
       wb1.close();

1 个答案:

答案 0 :(得分:0)

要获取div或选择或p的元素,您需要xpath我想你拥有它。 比

String name = ""
    List<WebElement> your_list= driver.findElements(By.xpath("xpath_stuff or workbook.get(I)"));


                for (int i=0; i<your_list.size(); i++) {
                //  System.out.println(i+ ". " + your_list.get(i).getText());
                    // here you can write the elements to excel.
  //if you need first name you need to just
                   if(i==(you know which is the first row that conatins the name)
                        {
                          name = your_list.get(i).getText();
                         }


   ... the same way the email and the other
                ws1.addCell(your_list.get(i).getText());
                }

       wb1.close();

我希望它有所帮助,如果没有,请从html和from excel中提供一些示例。