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