无法使用 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();
我们正在使用 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();