Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何处理SeleniumWebDriver中简单的HTML弹出窗口?_Java_Selenium Webdriver - Fatal编程技术网

Java 如何处理SeleniumWebDriver中简单的HTML弹出窗口?

Java 如何处理SeleniumWebDriver中简单的HTML弹出窗口?,java,selenium-webdriver,Java,Selenium Webdriver,如何处理SeleniumWebDriver中一个简单的HTML弹出窗口。这是一个用HTML编写的弹出窗口。您是否尝试过使用 driver.switchTo().alert().accept(); ?如果弹出窗口是模态的,您必须按照前面的答案所建议的做,但是如果弹出窗口只是HTML,您应该在弹出代码中找到一个WebElement,然后像往常一样工作,查看示例: driver.findElement(By.id(popupid)) 请注意并管理隐式超时,以确保查找将等待弹出窗口启动。使用下面给定

如何处理SeleniumWebDriver中一个简单的HTML弹出窗口。这是一个用HTML编写的弹出窗口。

您是否尝试过使用

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中,则切换到使用,否则将不使用