我正在使用 Selenium webdriver(java) 自动化 Web 应用程序。我已经在应用程序的其他部分处理了弹出窗口,但我无法处理 showModalDialog 窗口。应用程序具有只读文本框,我必须通过单击“搜索”按钮来填充它,这将打开新的弹出窗口。
此文本框和 Serach 按钮的 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 窗口,那将非常有帮助。建议将不胜感激。提前致谢 !