Java 如何处理SeleniumWebDriver中简单的HTML弹出窗口?
如何处理SeleniumWebDriver中一个简单的HTML弹出窗口。这是一个用HTML编写的弹出窗口。您是否尝试过使用Java 如何处理SeleniumWebDriver中简单的HTML弹出窗口?,java,selenium-webdriver,Java,Selenium Webdriver,如何处理SeleniumWebDriver中一个简单的HTML弹出窗口。这是一个用HTML编写的弹出窗口。您是否尝试过使用 driver.switchTo().alert().accept(); ?如果弹出窗口是模态的,您必须按照前面的答案所建议的做,但是如果弹出窗口只是HTML,您应该在弹出代码中找到一个WebElement,然后像往常一样工作,查看示例: driver.findElement(By.id(popupid)) 请注意并管理隐式超时,以确保查找将等待弹出窗口启动。使用下面给定
driver.switchTo().alert().accept();
?如果弹出窗口是模态的,您必须按照前面的答案所建议的做,但是如果弹出窗口只是HTML,您应该在弹出代码中找到一个WebElement,然后像往常一样工作,查看示例:
driver.findElement(By.id(popupid))
请注意并管理隐式超时,以确保查找将等待弹出窗口启动。使用下面给定的示例代码,它将工作
public String parentWindowHandler = null,subWindowHandler=null;
Set<String> handles = driver.getWindowHandles(); // get all window handles
Iterator<String> iterator = handles.iterator();
while(iterator.hasNext()){
subWindowHandler = iterator.next();
driver.switchTo().window(subWindowHandler);//select new popup
}
/*
your code here for script
*/
driver.switchTo().window(parentWindowHandler);//return to main window
首先,您应该找到唯一的DOM属性,因为有时HTML弹出窗口和父页面的id和class等元素属性相同 因此,如果它是唯一的,那么您可以简单地执行drive.findelementsBy.click或sendkeys等操作,否则您应该成为唯一的XPath,或者通过索引,您必须单击或执行其他操作 如果在iframe中,则切换到使用,否则将不使用