Selenium日期选择器问题

时间:2017-05-18 05:32:18

标签: java selenium selenium-webdriver

我需要从日历中选择一个日期,以便我使用下面的代码选择所有日期,但我想要的是我需要从日历中获取所有<td>标签,但是现在我从整个页面获取<td>个标签。以下是代码:

List<WebElement> listofCalendardates=CommonBrowserSetup.driver.findElements(By.tagName("td"));
for(int i=0 ; i < listofCalendardates.size() ; i++) {
    System.out.println("the data is :: " + listofCalendardates.get(i).getText());
    if (listofCalendardates.get(i).getText().equals(finalDateValue)) {
        listofCalendardates.get(i).click();
        break;
    }
}

有没有办法只能从日历中获取日期而页面中没有其他数据?感谢

<table class=" table-condensed">
<thead>
<tbody>
<tr>
<td class="old day">30</td>
<td class="day">1</td>
<td class="day">2</td>
<td class="day">3</td>
<td class="day">4</td>
<td class="day">5</td>
<td class="day">6</td>
</tr>
<tr>

2 个答案:

答案 0 :(得分:1)

您需要找到日历对象并使用它来查找<td>标记

WebElement calendarElement = CommonBrowserSetup.driver.findElement(...);
List<WebElement> listofCalendardates = calendarElement.findElements(By.tagName("td"));

答案 1 :(得分:0)

使用以下xpath获取仅datepickers的标记

List<WebElement> listofCalendardates=CommonBrowserSetup.driver.findElements(By.xpath(".//table[@class='table-condensed']//td"));
for(int i=0 ; i < listofCalendardates.size() ; i++) {
    System.out.println("the data is :: " + listofCalendardates.get(i).getText());
    if (listofCalendardates.get(i).getText().equals(finalDateValue)) {
        listofCalendardates.get(i).click();
        break;
    }
}