有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何使用robot或auto it在并行执行期间处理基于windows的弹出窗口

在我们的项目中,我们在点击“登录”按钮后处理基于windows的弹出窗口

我们用AutoIt/机器人处理它

但真正的问题发生在我们试图在本地机器上并行执行期间处理弹出窗口时

尝试在多个浏览器上处理基于windows的弹出窗口时,仅处理聚焦/显示在前面的浏览器,其余浏览器autoIt/Robot无法处理弹出窗口

请建议


共 (2) 个答案

  1. # 1 楼答案

    没有办法在并行执行中处理这样的问题。当两个基于windows的弹出窗口打开时,Robot或Auto会混淆

  2. # 2 楼答案

    考虑改变你处理弹出窗口的方式。每个浏览器实例都应该独立于其他浏览器实例执行此操作。有许多不同的解决方案来处理弹出窗口,因为有许多方法来实现弹出窗口。 请考虑详细信息的this question

    简而言之:处理弹出窗口的主要方法有: 使用windowHandle:

    driver.switchTo().window(subWindowHandler); // switch to popup window
    

    使用警报

    Alert alert = driver.switchTo().alert();
    alert.accept();
    

    如果可以通过以下方式访问弹出窗口,则在使用元素时使用常规方法:

    WebElement sign = driver.findElement(By.linkText("Sign in"));
    sign.click();
    WebElement email_id= driver.findElement(By.id("c_uname"));
    email_id.sendKeys("hi");
    

    UPD 这里更重要的一点是,在处理弹出窗口时,您的代码应该能够处理适当的浏览器实例。否则,很明显,所有的方法都不起作用。这是另一个大话题,我不知道你的并行实现,所以也要注意它