无法将注意力集中在弹出窗口上

时间:2016-10-17 12:06:52

标签: java selenium selenium-webdriver webdriver

[![在此输入图片说明] [1]] [1] HTML代码显示在屏幕截图 [![在此处输入图片说明] [2]] [2]

我尝试使用Action类

WebElement element = InspectationOrder.wd.findElement(By.xpath("//div[@class='qx-window']")); Actions actions = new Actions(InspectationOrder.wd); actions.moveToElement(element).click().build().perform();

但在我试图移动焦点时找到了"java.lang.NullPointerException"。 但相同的操作代码适用于应用程序中的其他区域

也尝试过 for (String popup : wd.getWindowHandles()) { wd.switchTo().window(popup); }

但不工作:( 可能是z-index的问题,但我对此并不了解。

3 个答案:

答案 0 :(得分:0)

(new WebDriverWait(driver, 10)).until(new ExpectedCondition<Boolean>() {
        public Boolean apply(WebDriver d) {

            boolean bool = (Boolean) ((JavascriptExecutor)d).executeScript("return $('.modal').is(':visible') ");

            return bool;
        }
    });

您的对话框实际上是上层的div。此代码最多等待10秒,直到创建对话框并完全显示。内部JavaScript用于选择对话框并检查天气是否可见。 (显示:无)。结果返回。如果结果为假,则测试将停止。

答案 1 :(得分:0)

您可以尝试在div中添加ID并使用以下代码吗?

driver.switchTo().frame(driver.findElement(By.id(id)));

driver.findElement(By.id(id inside popup));

答案 2 :(得分:0)

Selenium最新版本(Selenium 3 with GeckDriver)自动处理设置焦点。 以前我使用的是selenium 2,我们必须专注于新元素。但在使用GecoDriver的selenium 3中,我们无需担心小弹出窗口。 在我的整个自动化脚本中,selenium 3为我处理setfocus [不完全但在基本级别]并且从我处理。

使用完整链接。 LINK-1 [LINK-2] -谢谢 Dhaval