首页 > 解决方案 > 有人可以用另一个相对的 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]

标签: c#seleniumselenium-webdriverxpath

解决方案


试试下面的 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]

推荐阅读