Handling browser pop-up windows with Selenium
internet-explorer, popup, regression-testing, selenium
Solution
It works!! Just to make it easier for the folks who prefer selenese.
This worked for me using IE7(normal mode).
What a freaking hassle. Thank the spaghetti monster in the sky for SO or there is no way I would have got this working in IE.
<tr>
<td>getEval</td>
<td>selenium.browserbot.getCurrentWindow().open('', 'windowName');</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>buttonName</td>
<td></td>
</tr>
<tr>
<td>windowFocus</td>
<td>windowName</td>
<td></td>
</tr>
<tr>
<td>waitForPopUp</td>
<td>windowName</td>
<td>3000</td>
</tr>
<tr>
<td>selectWindow</td>
<td>windowName</td>
<td></td>
</tr>
Problem
We are running Selenium regression tests against our existing code base, and certain screens in our web app use pop-ups for intermediate steps. Currently we use the commands in the test: ``` // force new window to open at this point - so we can select it later selenium().getEval("this.browserbot.getCurrentWindow().open('', 'enquiryPopup')"); selenium().click("//input[@value='Submit']"); selenium().waitForPopUp("enquiryPopup", getWaitTime()); selenium().selectWindow("enquiryPopup"); ``` ...which works most of the time. Occasionally the test will fail on the `waitForPopUp()` line with ``` com.thoughtworks.selenium.SeleniumException: Permission denied ``` Can anyone suggest a better, more reliable method? Also, we primarily run these tests on IE6 and 7.