Selenium-如何从excel表中获取数据并将其写入网页?

时间:2013-11-21 13:01:57

标签: excel xpath selenium

嗨,这里的场景是我想在页面的文本字段中输入一些值,在此之前我需要使用xpath找到文本字段。

所以这里我在excel表中有这些字段的值和xpath。如何使上述代码生效?片段既不起作用也不显示任何错误。

Cell cells = null;
            Cell idcell=null;
            if (checking.equalsIgnoreCase("xxxxxxxxxxxxx")){
                System.out.println("Checking xxxxxxxxxxxx");

                if (checking.equalsIgnoreCase("yyyyyyyyyyyy")){
                for (int cols = 0; cols < sheet.getColumns(); cols++) {
                    cells = sheet.getCell(cols, rows);
                    idcell=sheet.getCell(cols,rows);
WebElement element_BuyCategory = driver.findElement(By.xpath(idcell.getContents()));
    element_BuyCategory.sendKeys(cells.getContents());
        System.out.println("xpath ok");
                    }

回应将不胜感激。

1 个答案:

答案 0 :(得分:0)

我想你知道如何从上面代码中发布的excel中提取数据。

对于使用XPath在页面中找到文本框的部分,我认为如果你使用CSS-Selectors而不是XPath更容易,因为XPath对于这个领域的新手来说有点困难并且往往会改变。

如果我们使用出现在StackOverflow页面右上角的文本框执行搜索示例,页面中的HTML代码如下:

<input class="textbox" type="text" value="" size="28" maxlength="240" tabindex="1" placeholder="search" name="q" autocomplete="off"></input>

我的建议是使用以下代码:

Cell cells = null;
Cell idcell=null;

if (checking.equalsIgnoreCase("xxxxxxxxxxxxx"))
{
    System.out.println("Checking xxxxxxxxxxxx");

    if (checking.equalsIgnoreCase("yyyyyyyyyyyy")){
        for (int cols = 0; cols < sheet.getColumns(); cols++) 
        {
            cells = sheet.getCell(cols, rows);
            idcell = sheet.getCell(cols,rows);            
            WebElement element_BuyCategory = driver.findElement(
                                           By.cssSelector(
                                           "#search div input.textbox ");

             /* Other way is find the element by its name, if its have a name  */
             WebElement element_BuyCategory_by_Name = driver.findElement(
                                           By.name("q");

            element_BuyCategory.sendKeys(cells.getContents());
            System.out.println("xpath ok");
         }
}

如果在某些情况下你想要使用XPath,你需要用下一行替换找到该元素的行:

/* If it's the only text box with this class or it's the first, I repeat this is a   example */
WebElement element_BuyCategory = driver.findElement
                                 By.xpath("//input[contains(@class,'textbox')"));

我希望上面解释的例子可以帮到你。