我遇到的问题是我不想在单击17或18时指定绝对xpath - 而是希望能够通过指定文本来单击。但链接文本在html中查找<a>
或href
属性,并且我有<td>
属性,我需要帮助以通过某种方式指定文本来点击它。
以下是驻留在表格中的示例html代码:
<td class="centerText day" data-bind="click: function(){$root.dayClicked($parent.days()[$index()])}, text: $parent.days()[$index()].day, css: { currentMonth: !$parent.days()[$index()].currentMonth, currentDay: $parent.days()[$index()].currentDay, selectedDay: $parent.days()[$index()].selectedDay }">17</td>
<td class="centerText day" data-bind="click: function(){$root.dayClicked($parent.days()[$index()])}, text: $parent.days()[$index()].day, css: { currentMonth: !$parent.days()[$index()].currentMonth, currentDay: $parent.days()[$index()].currentDay, selectedDay: $parent.days()[$index()].selectedDay }">18</td>
这是我的硒代码:
//click the calendar button
driver.findElement(By.xpath("//*[@id='btnTradeDate']")).click();
//go through the calendar table to navigate through each cell
WebElement dateWidget = driver.findElement(By.id("transactionGridControls"));
List<WebElement> rows=dateWidget.findElements(By.tagName("tr"));
List<WebElement> columns=dateWidget.findElements(By.tagName("td"));
for (WebElement cell: rows){
//Select 17th Date
if (cell.getText().equals("17")){
cell.findElement(By.linkText("17")).click(); //need help on this
break;