Selenium webdriver(java)を使用してWebアプリケーションを自動化しています。アプリケーションの他の部分でポップアップウィンドウを処理しましたが、showModalDialogウィンドウを処理できません。アプリケーションは読み取り専用のテキストボックスを持っているので、[検索]ボタンをクリックしてこれを入力する必要があります。これにより、新しいポップアップウィンドウが開きます。
このテキストボックスと検索ボタンのHTMLコードは次のとおりです。
<tr>
<td><label class="classLabel">Textbox<sup class="mandatory">*</sup></label></td>
<td><input type="text" name="textbox" value="" readonly="readonly" class="someTextbox">
<img src="/Some/url/search.gif" alt="Select Help" onclick="launch2()" />
</td>
</tr>
[検索]ボタンをクリックすると、showModalDialogウィンドウが開き、ラジオボタンをクリックしてテキストボックスに入力する必要があります。
このshowModalDialogウィンドウにはiframe要素があり、以下はこのためのhtmlコードです。
<iframe src="/some/url.do?parameter=getData" width='100%' height='100%' border=0 >
</iframe>
以下は、ポップアップウィンドウに切り替えてiframeを選択するために使用しているコードです。ここでは、検索ボタンをクリックするとテストケースが停止し、ポップアップウィンドウも表示されますが、ポップアップは処理されません。
driver.findElement(By.cssSelector("img[alt=\"Select Help\"]")).click();
String winHandleBefore = myD.getWindowHandle();
for(String winHandle : myD.getWindowHandles()){
driver.switchTo().window(winHandle);
}
driver.switchTo().frame(0);
driver.findElement(By.name("hier_data_id")).click();
showModalDialogウィンドウの処理方法について誰かが考えているなら、それは本当に役に立ちます。提案をいただければ幸いです。前もって感謝します !