在这里,我必须将所有td标记放在一个数组中并与数据库数据进行比较。在这里,我只获得一个td的xpath。请告诉我如何找到这些元素并将其放入数组中。这样我就可以进行循环并使用数据库表数据检查数据。我想要那些带有list_UID的td。我附在屏幕截图
<table id="list" class="table table-hover table-stripe ui-jqgrid-btable"
cellspacing="0" cellpadding="0" border="0" tabindex="0" role="grid"
aria-multiselectable="true" aria-labelledby="gbox_list" style="width:
2685px;">
<tbody>
<tr class="jqgfirstrow" style="height:auto" role="row">
<tr id="1" class="ui-widget-content jqgrow ui-row-ltr" tabindex="-1"
role="row">
<td class="ui-state-default jqgrid-rownum" aria-describedby="list_rn"
title="1" style="text-align:center;width: 40px;" role="gridcell">1</td>
<td aria-describedby="list_cb" style="text-align:center;width: 25px;"
role="gridcell">
<td aria-describedby="list_Info" title="" style="" role="gridcell">
<td aria-describedby="list_UID" title="201607051541214549899" style=""
role="gridcell">201607051541214549899</td>
<td aria-describedby="list_NoofActivities" title="" style=""
role="gridcell">
<td aria-describedby="list_Executor" title="" style="" role="gridcell">
<td aria-describedby="list_Title" title="Mr." style=""
role="gridcell">Mr.</td>
答案 0 :(得分:0)
如果你想要所有包含list_UID
的tds,你可以使用cssSelector
找到它,如下所示(假设你使用的是java): -
List<WebElement> list_UID = driver.findElements(By.cssSelector("td[aria-describedby='list_UID']"));
已修改: - 如果您希望标题包含数据列表且标题ID不同,请尝试使用By.xpath()
|
条件,如下所示: -
List<WebElement> list_UID = driver.findElements(By.cssSelector(".//th[@id='list_Village'] | .//td[@aria-describedby='list_UID']"));
希望它有帮助...:)
答案 1 :(得分:0)
.//*[@id='1']/td[4]
只返回一个元素的原因是因为您明确要求只有一个元素两次。一次,使用[@id='1']
,因为id
属性是唯一的,其次是td[4]
,只需要第四个td
元素。
我想要那些带有list_UID的td。
然后你应该编写你的XPath表达式来做你想做的事情:
.//td[@aria-describedby='list_UID']
这会获得td
属性为area-describedby
的所有"list_UID"
个元素。