我想知道是否有人可以帮助我。我有一个应用程序,用户单击文件夹图标打开/关闭它(类似于我们在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,它会更健壮,不依赖于树中文件夹的确切位置,而是文件夹的名称是唯一的吗?
干杯
单
答案 0 :(得分: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
)中包含的完整文本,并删除了额外的空格。