0
<tbody>
<tr class="odd">
<td>
<input id="nodeAccountOid" type="radio" onclick="setNodeAccountIdToCredentialCheck('E9E2930C4493B569E040A8C0158E4ABD');" style="width:100%;border:0px">
</td>
<td>E9E2930C4493B569E040A8C0158E4ABD</td>
<td>monacho1</td>
<td>urn:dece:org:org:dece:dece:cs</td>
</tr>
<tr class="even">
<td>
<input id="nodeAccountOid" type="radio" onclick="setNodeAccountIdToCredentialCheck('E9E2930C4494B569E040A8C0158E4ABD');" style="width:100%;border:0px">
</td>
<td>E9E2930C4494B569E040A8C0158E4ABD</td>
<td>monacho1</td>
<td>urn:dece:org:org:dece:coord:cs</td>
</tr>
<tr class="odd">
<td>
<input id="nodeAccountOid" type="radio" onclick="setNodeAccountIdToCredentialCheck('E9E2930C4495B569E040A8C0158E4ABD');" style="width:100%;border:0px">
</td>
<td>E9E2930C4495B569E040A8C0158E4ABD</td>
<td>monacho1</td>
<td>urn:dece:org:org:dece:300</td>
</tr>
<tr class="even">
<td>
<input id="nodeAccountOid" type="radio" onclick="setNodeAccountIdToCredentialCheck('E9E2930C4495B569E040A8C0158E4ABD');" style="width:100%;border:0px">
</td>
<td>E9E2930C4495B569E040A8C0158E4ABD</td>
<td>monacho1</td>
<td>urn:dece:org:org:dece:10</td>
</tr>
</tbody>
</table>

我想选择对应于 urn:dece:org:org:dece:10 的单选按钮,这是提供的 html 中的第四行。该行有时可能会根据 AUT 中的某些输入而改变。请提供我选择它的方法。

提前致谢

4

2 回答 2

1

由于文本永远不会更改,因此您可以将其用作 DOM 中的起点,并使用 XPath 导航到input您需要的位置:

//td[.='urn:dece:org:org:dece:10']/parent::tr/descendant::input[@id='nodeAccountOid' and @type='radio']
  1. 得到tdtext 等于 urn:dece:org:org:dece:10

  2. 得到那td的父母tr

  3. 从那个父母tr那里,得到input那个有一个id 等于 nodeAccountOid和一个typeradio

因此,元素的确切位置并不重要,只要 XPath 定位器可以向上导航到您需要的parent位置并再次向下导航到input您需要的位置。

于 2013-10-30T11:44:35.750 回答
0

您面临的问题是定位网页中可能出现在不同位置的某个元素。如果有另一个元素可以通过其内容、id 或名称轻松识别,并且该元素与您要定位的元素之间存在静态关系,那么您可以使用 xpath。据我所知,selenium 文档中也有一些示例。

于 2013-10-29T14:48:34.073 回答