Compare window.open with window.showModalDialog()
Function | detail |
window.open() | 是非阻塞式,也可以说非模态窗口 |
window.showModalDialog()
| 阻塞式模态窗口。阻塞或者模态窗口,只有你把当前窗口关闭后,才能去操作父亲窗口 How to handle it: SeleniumUtils.clickWithTimeout |
Method1:
// to pop-up
driver.switchTo().frame(driver.findElement(By.cssSelector("iframe#fancybox-frame")));
Assert.assertTrue(SeleniumUtils.isTextPresent(driver, "Are you a returning official?"));
log.info("Assert ok ");
//yes
//new thread to click radio button
new Thread() {
public void run() {
SeleniumUtils.selectRadioButton(driver,driver.findElement(By.cssSelector("div#con")), 0);
System.out.println("Thread done");
}
}.start();
//Main thread switch window
SeleniumUtils.switchToAnotherWindow(driver);
log.info(driver.getPageSource());
log.info("switch done");
driver.close();
driver.switchTo().window(parentWindowID);
SeleniumUtils.sleepInSeconds(2);
driver.switchTo().frame(driver.findElement(By.cssSelector("iframe#fancybox-frame")));
Assert.assertTrue(SeleniumUtils.isTextPresent(driver, "Are you a returning official?"));