我想用 Katalon + XPath 在表格行中自动查找元素。我有一个html表格,我想找到满足我条件的正确的行。
我的第一次尝试是。
//*[starts-with(@id,\'MessageList_DXDataRow\')]/td[2] [text()='SomeSearchValue'] and td[3][contains(text(), 'SomeString')]
但是简单的添加 "and "会让它返回boolean: false.
所以我把它修改成这样。
//*[starts-with(@id,'MessageList_DXDataRow')]/*[self::td[2][text()='SomeSearchValue'] and self::td[3][contains(text(), 'SomeString')]]
但它什么也找不到。
如你所见,我想在td[2]中搜索一个固定值,在td[3]中搜索一个子串。
编辑:我想搜索td[2]中的固定值和td[3]中的子串。
相关的html:
<table>
<tbody>
<tr id="MessageList_DXDataRow0" class="dxgvDataRow table-row share row-navigable" style="font-weight: bold;">
<td class="dxgv">FirstColumn</td>
<td class="dxgv">SecondColumn</td>
<td class="message-content dxgv">ThirdColumn</td>
<td class="dxgv">FourthColumn</td>
<td class="dxgvCommandColumn dxgv dx-ac">FifthColumn</td>
</tr>
<tr id="MessageList_DXDataRow1" class="dxgvDataRow table-row share row-navigable" style="font-weight: bold;">
<td class="dxgv">FirstColumn</td>
<td class="dxgv">SecondColumn</td>
<td class="message-content dxgv">ThirdColumn</td>
<td class="dxgv">FourthColumn</td>
<td class="dxgvCommandColumn dxgv dx-ac">FifthColumn</td>
</tr>
我怎么能让它工作呢?
我想明白了。
我正在寻找的解决方案是这样的。
(//*[starts-with(@id,'MessageList_DXDataRow')]/td[2][text()='SecondColumn']/following-sibling::td[1][contains(text(), 'Third')])[1]'
我还是不清楚你要的是OR还是AND条件。
这将选择满足td[2]条件或td[3]条件的行。
//tr[starts-with(@id,'MessageList_DXDataRow')][./td[2][.="SecondColumn"] or ./td[3][contains(.,"Third")]]
这将选择同时满足td[2]和td[3]条件的行。
//tr[starts-with(@id,'MessageList_DXDataRow')][./td[2][.="SecondColumn"] and ./td[3][contains(.,"Third")]]