无法使用 Selenium WebDriver 在 Oracle-APEX 中识别弹出窗口 Java

Can't identify a popup in Oracle-APEX using Selenium WebDriver Java

我们正在使用 Oracle Apex 构建一个应用程序,我的任务是在 Selenium WebDriver 中编写自动化测试。

此应用程序经常导致出现弹出窗口,但我一直无法与弹出窗口交互 - 我收到典型的无法定位元素消息。

    driver.findElement(By.xpath("//div[2]/button")).click(); // show popup


    String parentWindowHandler = driver.getWindowHandle(); // Store your parent window
    String subWindowHandler = null;

    //move to popup.
    Set<String> handles = driver.getWindowHandles(); // get all window handles
    Iterator<String> iterator = handles.iterator();
    while (iterator.hasNext()){
        subWindowHandler = iterator.next();
    }
    driver.switchTo().window(subWindowHandler); // switch to popup window
                                                // perform operations on popup

    System.out.println(driver.getCurrentUrl())

    driver.findElement(By.id("P15_NAME")).clear();
    driver.findElement(By.id("P15_NAME")).sendKeys("Test");
    driver.findElement(By.id("P15_DESCRIPTION")).clear();
    driver.findElement(By.id("P15_DESCRIPTION")).sendKeys("Test");

    driver.findElement(By.xpath("//div[3]/div/button")).click(); // 'Create' button, closes popup.

getWindowHandles() 和迭代器代码来自另一个弹出建议,但我相信这里可能有所不同,因为该网站是用 APEX 编码的。 我正在针对 Firefox 41 执行代码。

提前致谢。

iframe 是这里的关键。 在哪里使用

driver.switchTo().frame(driver.findElement(By.tagName("iframe")));

是如何与框架交互。

然后我通过

返回到基本框架
driver.switchTo().parentFrame();