SeleniumRCを使用してHTMLページの一部をテストする際に問題が発生しました。要素がページに存在し、ページがロードされたときに表示される場合、問題はありません。SeleniumRCはその要素にアクセスしてその値を取得したり、(入力の場合)書き込むことができます。
ただし、要素が表示されず、javascriptを使用してのみ表示される場合、seleniumはその要素を処理できません。たとえば、2つのdivがあります。
<div id="row2" class="row" onclick="switchTo('row2e');">
<div class="row label">Address</div>
<div class="row data">${user.address}</div>
</div>
<div id="row2e" class="row-edit">
<form id="address-form" name="address-form" method="post" onsubmit="">
<div class="row label">Address-Must be 5-25 letters or numbers</div>
<input type="text" id="address" name="address" value="${user.address}"/>
<button>Change address</button>
</form>
</div>
ページが読み込まれると、div "row2"が表示され、"row2e"が非表示になります。「row2」をクリックすると、divが(javascriptを使用して)変更され、「row2」が非表示になり、「row2e」が表示されます。この時点で、SeleniumRCは「row2e」divの入力を管理できません。
JavaScriptを使用して(ページを送信せずに)ページの大きな部分を変更する場合にも同じ問題が発生します。
なぜこれが起こるのか考えはありますか?