如何使用selenium webdriver在表中的div标签内获取值

时间:2016-02-16 15:10:15

标签: java selenium-webdriver

我正在尝试使用selenium webdriver为我的应用程序之一进行自动化。问题是我试图从表中获取包含“div”标签内的值的数据。该表只是一个日历。

这是我从表中获取值的代码。(即div标签)

public boolean webElement_Table_findCellValue_WD(String locatorType, String locatorVal, String cellText){
    boolean elementStatus = false;  
    WebElement tbl = this.getWebElement(locatorType, locatorVal);

    List<WebElement> tbTag=tbl.findElements(By.tagName("table"));

    int num=tbTag.size();
    System.out.println("hhhhhhhhhhhhhhhhhhh"+num);

    for(WebElement tbTagEle: tbTag)
    {
        List<WebElement> trTag=tbTagEle.findElements(By.tagName("tr"));
        System.out.println("iiiiiiiiiiiiii"+trTag.size());

        for(WebElement trTagEle: trTag)
        {
            List<WebElement> tdTag=trTagEle.findElements(By.tagName("td"));
            System.out.println("jjjjjjjjjjjjj"+tdTag.size());
            for(WebElement tdTagEle: tdTag)
            {
                List<WebElement> divTag=tdTagEle.findElements(By.tagName("div"));
                for(WebElement divTagEle: divTag)
                System.out.println("the contents are:"+divTagEle.getText());
            }
        }
    }

    return elementStatus;   

}

我的目的只是从日历中选择(点击)日期。(表格)我会将其传递给属性文件。

2 个答案:

答案 0 :(得分:0)

在回答问题的第一部分时,@ Strite Alfa得到了大部分的帮助。

以下内容将打印每个表格中每个单元格中的<div>内容(无论是一个还是多个):

for (WebElement elem : driver.findElements(By.cssSelector("table td div"))) {
    System.out.println("Each div:" + elem.getText());
}

我不知道您是否需要将这些值存储在List中。你的其余部分不是很清楚,但希望你能从这里解决它。

答案 1 :(得分:-1)

以下将找到特定的日期表,并单击same.pass日期值作为参数。 WebElement el = driver.findElement(By.xpath("//table//div[contains(.,'"+date+"')]")) el.click();