有人可以帮我一个相对的XPath查找元素吗?

时间:2019-05-21 09:56:50

标签: c# selenium selenium-webdriver xpath

很抱歉再次询问。

我还有一个无法在Angular网格上找到的webElement。我可以得到XPath,但是它很长,我需要压缩它。 完整的HTML和我的XPath在下面。我需要在表中找到一个单元格元素。

我要找到这个

<td aria-describedby="dx-col-20" aria-selected="false" role="gridcell" aria-colindex="4" style="text-align: left;" tabindex="0" class="dx-cell-focus-disabled">Testie Tester</td>

请参阅下面的完整HTML代码

<table class="dx-datagrid-table dx-datagrid-table-fixed" role="presentation"><colgroup><col style="width: 30px;"><col><col><col><col></colgroup><tbody role="presentation"><tr class="dx-row dx-data-row dx-row-lines dx-selection" role="row" aria-selected="true" aria-rowindex="1"><td aria-describedby="dx-col-17" aria-selected="false" role="gridcell" aria-colindex="1" class="grid-icon-container" tabindex="0" style="text-align: left;"><img class="grid-icon" src="/assets/app/document-types/DOC-Active-16x16.svg" alt="icon"></td><td aria-describedby="dx-col-18" aria-selected="false" role="gridcell" aria-colindex="2" style="text-align: left;"><a onclick="window.navEventUrl='customLink:/document/people/b20236e5-2802-4dd4-8ae0-47910099d34b/TestCv1.doc/6289d044-a9dc-45d4-ab40-80eb90d589db'; window.dispatchEvent(new Event('navEvent'))">TestCv1.doc</a></td><td aria-describedby="dx-col-19" aria-selected="false" role="gridcell" aria-colindex="3" style="text-align: left;">38912</td><td aria-describedby="dx-col-20" aria-selected="false" role="gridcell" aria-colindex="4" style="text-align: left;" tabindex="0" class="dx-cell-focus-disabled">Testie Tester</td><td aria-describedby="dx-col-21" aria-selected="false" role="gridcell" aria-colindex="5" style="text-align: left;" title="21/05/2019 11:50:46 am">21/05/2019 11:50:46 am</td></tr><tr class="dx-row dx-freespace-row" role="presentation" style="height: 391px;"><td style="text-align: left;"></td><td style="text-align: left;"></td><td style="text-align: left;"></td><td style="text-align: left;"></td><td style="text-align: left;"></td></tr></tbody></table>

我的XPath(有效)是

//*[@id="content-container"]/inv-sidebar-layout-content/ng-component/ng-component/section/div[2]/as-split/as-split-area[1]/article/inv-people-tabs/inv-vertical-tabs-list/div[2]/div/inv-tab[4]/div/inv-grid/div/div/div[2]/dx-data-grid/div/div[6]/div/div/div[1]/div/table/tbody/tr[1]/td[6]

2 个答案:

答案 0 :(得分:1)

尝试以下xpath,您将获得所有<td>

//table[@class="dx-datagrid-table dx-datagrid-table-fixed"]//tr//td

如果要从第一个单元格获取图像,请尝试在xpath下进行。

//table[@class="dx-datagrid-table dx-datagrid-table-fixed"]//tr//td/img[@class="grid-icon"]

如果要获取TestCv1.doc,请尝试在xpath下

//table[@class="dx-datagrid-table dx-datagrid-table-fixed"]//tr//td/a[contains(.,"TestCv1.doc")]

如果要获取testi测试器,请使用以下xpath。

//table[@class="dx-datagrid-table dx-datagrid-table-fixed"]//tr//td[contains(.,"Testie Tester")]

如果您想获取时间。

//table[@class="dx-datagrid-table dx-datagrid-table-fixed"]//tr[1]//td[5]

答案 1 :(得分:0)

下面的XPath为我工作,使用Selenium(driver.FindElement)在Angular网格中选择一条线

 //*[@class='dx-row dx-data-row dx-row-lines']