Java 无法在弹出窗口上设置焦点

Java 无法在弹出窗口上设置焦点,java,selenium,selenium-webdriver,webdriver,Java,Selenium,Selenium Webdriver,Webdriver,[![enter image description here][1][1]屏幕截图中显示HTML代码[![enter image description here][2][2] 我尝试了动作课 WebElement=inspectionorder.wd.findElementBy.xpath//div[@class='qx-window']; Actions Actions=newactionsInspectionOrder.wd; actions.moveToElementelement.c

[![enter image description here][1][1]屏幕截图中显示HTML代码[![enter image description here][2][2]

我尝试了动作课

WebElement=inspectionorder.wd.findElementBy.xpath//div[@class='qx-window']; Actions Actions=newactionsInspectionOrder.wd; actions.moveToElementelement.click.build.perform

但在我尝试移动焦点时发现java.lang.NullPointerException。 但同样的动作代码也适用于应用程序中的其他领域

也试过了 对于字符串弹出窗口:wd.getWindowHandles { wd.switchTo.windowpopup; }

但不起作用: z指数可能有问题,但m对此没有更多的想法

(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用于选择对话框并检查天气是否可见。显示:无。返回结果。如果结果为假,您的测试将停止。

您可以尝试向div添加一个id并使用以下代码吗

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

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

Selenium 3的最新版本和GeckDriver自动处理设置焦点。 之前我使用的是selenium 2,其中我们必须关注新元素。但是在使用GecoDriver的selenium 3中,我们不需要担心小的弹出窗口。 在我的整个自动化脚本中,selenium 3为我处理setfocus[不完全,但在基本级别],并以我的形式工作

使用完整链接。 -谢谢
Dhaval

弹出窗口是什么意思?这是一个模式窗口还是什么时候会出现弹出窗口?不,这是一个由javascript创建的弹出窗口,这就是为什么switchTo.window不工作。如果它是javascript警报,那么您需要使用driver.switchTo.alert。但是这个弹出窗口包含许多web元素,我必须在其中传递值。所以我想我们不能。。。你可以提供弹出窗口的屏幕截图吗。我只是想看看弹出窗口的外观。如果我们可以使用ID,那么我们肯定也应该使用类。我不是这方面的专家,所以你可以用类试试吗?driver.findElementBy.classnamelement类