在我们的项目中,我们遇到了一个情况,在点击“登录”后处理基于Windows的弹出窗口。按钮。
我们使用AutoIt / Robot处理它。
但是当我们在本地计算机上并行执行期间尝试处理弹出窗口时,会出现真正的问题。
尝试在多个浏览器上处理基于Windows的弹出窗口时,只处理前面聚焦/显示的浏览器,其余浏览器autoIt / Robot无法处理弹出窗口。
请建议
答案 0 :(得分:0)
考虑更改处理弹出式窗口的方式。每个浏览器实例都应该独立于其他浏览器实例。有许多不同的解决方案来处理弹出窗口,因为有很多方法可以实现弹出窗口。 请考虑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 强> 这里更重要的一点是,您的代码应该能够在处理弹出窗口时处理适当的浏览器实例。否则,没有任何一个方面可行。这是另一个大话题,我不知道你的并行性实现,所以也要注意它
答案 1 :(得分:0)
没有办法处理并行执行。当2个基于窗口的弹出窗口打开时,机器人或自动会混淆