使用findElement发送click后,我不能继续处理弹出窗口的下一个操作,直到弹出窗口关闭(手动),因为当前窗口不受控制,因此webdriver永远等待。
我正在尝试执行以下操作:
driver.findElement(By.xpath(salesforceButtons.CUSTOM_OBJECT_DELETE.getValue())).click();
Set<String> windowId = driver.getWindowHandles(); // get window id of current window
Iterator<String> itererator = windowId.iterator();
String mainWinID = itererator.next()
String newAdwinID = itererator.next();
driver.switchTo().window(newAdwinID);
但点击后它会卡住。
答案 0 :(得分:0)
我认为你需要使用以下内容(假设弹出窗口是指浏览器警报窗口):
Alert alert = driver.switchTo().alert();
alert.accept()
我可能错了,可能你需要遍历窗口,但是,你所说的代码没有这样做,它只是将窗口焦点改为定义的窗口。 driver.getWindowHandles()设置中的第二个结果。如果它不仅仅是一个简单的警报,我可以建议以下内容:
String startWinId = driver.getWindowHandle(); // caches the current window id
driver.findElement(By.xpath(salesforceButtons.CUSTOM_OBJECT_DELETE.getValue())).click();
Set<String> windowId = driver.getWindowHandles(); // actually gets all available windows ids
Iterator<String> iterator = windowId.iterator();
// Iterates through each active window and does stuff within that window.
while (iterator.hasNext()) {
driver.switchTo().window(iterator.next());
<insert code to run against each window here>
}
// Switches back to the original window to carry on with executing tests
driver.switchTo().window(startWinId);