我使用Selenium webdriver(java)自動化Web應用程序。我在應用程序的其他部分處理了彈出窗口,但我無法處理showModalDialog窗口。應用程序具有隻讀文本框,我必須通過單擊搜索按鈕來填充它,這將打開新的彈出窗口。無法處理Selenium Webdriver(Java)中的showModalDialog窗口
此Textbox和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窗口的想法,這將是非常有益的。建議將不勝感激。 在此先感謝!
我已經編輯我的question.Earlier我以爲是彈出窗口,但研究後,我才知道,這是在showModalDialog窗口之前獲得窗口句柄。 – 2012-08-10 10:03:48