2
由于每次刷新后每个ID都是随机生成的,所以我不得不使用其他标识符。我基本上希望机器人将文本输入到我指定标识符旁边的字段中。Robot Framework - Selenium2Library - 根据之前的文本输入文本字段
我希望文字输入到用户:域,并使用“用户:”作为定位器一起工作。 它适用于xpaths,但我宁愿使用另一种不会太脆弱的方法。
这里是用来生成表单
<tbody id="m8DPe" class="z-rows">
<tr id="m8DPf" style="background:#FFFFFF;" class="z-row">
<td id="m8DPg-chdextr" style="background:#FFFFFF;text-align:left;" class="z-row-inner">
<div id="m8DPg-cell" class="z-row-content">
<span id="m8DPg" class="z-label">User:</span>
</div>
</td>
<td id="m8DPh-chdextr" style="background:#FFFFFF;text-align:left;" class="z-row-inner">
<div id="m8DPh-cell" class="z-row-content">
<input id="m8DPh" class="z-textbox" value="" type="text" name="j_username">
</div>
</td>
</tr>
<tr id="m8DPi" style="background:#FFFFFF;" class="z-row z-grid-odd">
<td id="m8DPj-chdextr" style="background:#FFFFFF;text-align:left;" class="z-row-inner">
<div id="m8DPj-cell" class="z-row-content">
<span id="m8DPj" class="z-label">Password:</span>
</div>
</td>
<td id="m8DPk-chdextr" style="background:#FFFFFF;text-align:left;" class="z-row-inner">
<div id="m8DPk-cell" class="z-row-content">
<input id="m8DPk" class="z-textbox" value="" type="password" name="j_password">
</div>
</td>
</tr>
我知道这将是类似这样的东西HTML:
Input Text //tr[contains(text(), 'Example') and ...] ${USERNAME}
但我真的不知道。有什么地方可以阅读吗?
我是Robot Framework的新手。对不起,我很抱歉。
您是否有能力与开发人员稍微更改HTML标记? –
不,我不 - 我们基本上用Java创建它,然后使用ZK API。他们不能直接触及HTML – Goralight
我在一个项目中遇到了类似的问题。我能够使用Python根据其描述xpaths来计算文本框xpath。因为你的ID看起来很相似,所以你应该可以通过去除多余的描述符ID来完成它。听起来很可怕,但我发现它使得可读性和强大的测试自动化成为可能。 – Pekka