リフレッシュ後にすべてのIDがランダムに生成されるため、他の識別子を使用する必要があります。私は基本的に、ロボットが指定した識別子の隣にあるフィールドにテキストを入力したいと思っています。Robot Framework - Selenium2Library - テキストの前にテキストを入力してフィールドに入力します
私はテキストがユーザーに入力させたい:フィールドと「ユーザー:」を使用してロケータとしてで動作するようにします。 これはxpathsで動作しますが、むしろ壊れにくい別の方法を使用します。
Input Text //tr[contains(text(), 'Example') and ...] ${USERNAME}
しかし、私は正直に知らない:ここでは
は、HTMLは、私はそれがこれに似たものになるだろう知っている形
<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>
を生成するために使用されます。私はこれを読むことができるどこかにありますか?
私はRobot Frameworkの新機能です。いいえ、申し訳ありません。
開発者と協力してHTMLマークアップを少し変更できますか? –
いいえ、私は基本的にJavaで作成し、ZK APIを使用します。彼らは直接HTMLに触れることはできません – Goralight
私はプロジェクトで同様の問題を抱えていました。私はPythonを使用して、テキストボックスのxpathをその記述xpathに基づいて計算することができました。あなたのIDは似ているので、ディスクリプタIDの余分な部分を取り除くことでそれを行うことができます。それは恐ろしいと聞こえるが、私はそれが読みやすくて堅牢なテスト自動化を行うことがわかった。 – Pekka