selenium getWindowHandles无法与最新版本的边缘浏览器一起正常工作

tktrz96b  于 2022-12-18  发布在  其他
关注(0)|答案(1)|浏览(119)

我正在使用一个仅支持Edge Browser的应用程序。登录功能的工作原理如下-在登录屏幕上,当提供用户名和密码值并单击登录按钮时,将打开一个新的浏览器窗口,其中包含一个活动的警告弹出窗口,显示“登录成功”沿着“确定”按钮 * 类似 *,如下图所示-

此外,当此新窗口打开时,旧浏览器窗口变为空白。当用户单击此确定按钮(或按键盘上的ENTER按钮)时,用户主页加载到此新浏览器窗口本身,旧窗口在整个会话期间保持黑色。

自动化-

为了在自动化中处理此流,我使用了getWindowHandles()方法,在该方法中,我获得这个新打开的窗口的句柄并接受警报。在边缘浏览器版本105之前,该方法一直工作正常。但是,当边缘浏览器版本升级到107时,我开始面对getWindowHandles()方法进入无限循环,最终测试超时。我也尝试过使用Robot类模拟Enter按钮的点击,但没有什么区别。我尝试过使用边缘-驱动程序版本与当前浏览器版本107匹配,但问题仍然存在。
有人能请让我知道什么可以做这个?这些是任何已知的问题与较新的边缘浏览器版本?谢谢提前...!!
这是为处理多个窗口而编写的代码,测试在getWindowHandles()方法本身超时。

for(String wh : driver.getWindowHandles()){
    driver.switchTo().window(wh);
}
ee7vknir

ee7vknir1#

添加一个Wait可能是这个问题的关键:

WebDriverWait wait = new WebDriverWait(driver,20);

顺便说一句,我已经测试了边缘108(也与边缘驱动程序108)。没有这样的错误信息,一切工作正常。您可以升级到108,看看这个问题是否已经解决。

相关问题