我正在尝试使用xpath获取特定行(该特定行可以使用id标识(之后的所有行的值。请注意,我正在automation anywhere的对象克隆命令中使用它来定位和获取详细信息。假设这是表格:
<table class="actiontable" >
<tbody>
<tr></tr>
<tr></tr>
<tr id="h32423">
<td class="claim"><span id="claimants">Claimants</span></td>
</tr>
<tr id="a23">
<td id="g543"><a href="some site">Edward Hunter</a> </td>
</tr>
<tr>
<td id="g544"><a href="some site">Jane Doe</a> </td>
</tr>
<tr></tr>
</tbody>
</table>
在上表中,我需要获取"索赔人"行之后的所有名称。有什么建议吗?
您需要检查preceding-sibling
数据,如下所示:
//tr[preceding-sibling::tr[normalize-space(.)='Claimants']]
你可以根据你的评论试试这个:
/table[@class='actiontable']/descendant::tr[normalize-space(lower-case(.))!= 'claimants']
对于您的简单示例,您可以在Automation Anywhere编辑器中执行以下操作:
添加具有2
的Times
条件的循环命令
在循环对象内部克隆要访问的字段之一,并将DOMXPath
更改为
/html/body/table[1]/tbody[1]/tr[$Counter$+3]/td[1]/a[1]
选择Action
为Get Property
,选择Select Property
为HTML InnerText
将其分配给您选择的变量
通过消息框命令输出此变量
运行时,您应该会看到显示的两个名称。
在本文中,我们使用AA计数器变量来迭代DOMXPath。我已经将其调整了3,因为在您希望在上开始的行之前有3个<tr>
标签
我不确定现在回答是否为时已晚。我认为下面的XPath符合您的条件。
//tr[td[span[@id='claimants']]]/following-sibling::tr/td/a
*您可以根据要访问的元素将/tr/td/a
更改为/tr
或/tr/td
我在Google Chrome上的XPath搜索控制台中尝试了这个XPath,它导航到ID=索赔人的行之后的所有a
标记。
由于我是AA的新手,我不知道如何循环使用从XPath获得的那些a标记。但我希望这能帮助你解决问题
[更新]我找到了解决方案
1。使用//tr[td[span[@id='claimants']]]
和Object Cloning来获取特定行的索引。假设索引值存储在变量$vIndex$
2中。循环通过表中的所有td
3。如果$Counter$
>$vIndex$
,则为特定行下的行