-1

我想知道是否有人可以帮助我。我有一个应用程序,用户单击文件夹图标以打开/关闭它(类似于我们在 Windows 资源管理器树中导航/探索文件的方式) - 当我在 selenium IDE 中记录我的测试时,这是生成的代码:

<tr>
    <td>click</td>
    <td>//ul[@id='analysisTree']/li[3]/p</td>
    <td></td>
</tr>
<tr>
    <td>click</td>
    <td>//ul[@id='analysisTree']/li[4]/p</td>
    <td></td>
</tr>

这是来自应用程序的与文件夹的折叠状态相对应的源代码片段。

<li class="folder collapsed" data-nodecode="RentalValues">
<p>Rental Values</p>
<ul>
</li>
<li class="folder collapsed" data-nodecode="Affordability">
<p>Affordability</p>
<ul>
</li>

当前默认元素 xpath 定位器的问题是,如果几个月后我们在树上引入另一个文件夹,它可能会在树上向上或向下移动文件夹位置,这将导致打开错误的文件夹。因此,有人可以帮我组合一个更健壮的 XPath,它不依赖于树中文件夹的确切位置,而是依赖于唯一的文件夹名称吗?

干杯

4

1 回答 1

1

您可以根据data-nodecode属性进行选择:

<tr> 
  <td>click</td> 
  <td>//ul[@id='analysisTree']/li[@data-nodecode='RentalValues']/p</td> 
  <td></td> 
</tr> 
. . . 

或文件夹名称:

<tr> 
  <td>click</td> 
  <td>//ul[@id='analysisTree']/li[normalize-space(.)='Rental Values']/p</td> 
  <td></td> 
</tr> 
. . . 

normalize-space(.)获取包含在当前元素(li在这种情况下)中的完整文本,并去除多余的空格。

于 2012-04-13T11:42:22.110 回答