我们正在与 Selenium webdriver 合作,为 Internet Explorer 11 进行 UI 测试。 在测试的 Web 应用程序中,会弹出几个屏幕。在一些测试中,我们最终得到了三个浏览器窗口,因此也得到了三个 Driver.WindowHandles。 为了从一个 WindowHandle 切换到另一个,我们期望 Driver.WindowHandles 会按照最旧的窗口在前、最新的窗口在后的方式进行排序。但事实并非如此:它完全是随机的!
因为 windowhandle 是一个 GUID,所以我们最终创建了一个字典,其中 WindowHandle GUID 作为键,其值为浏览器窗口中加载的页面类型的值。 但这也会导致在关闭窗口时维护字典。
对于这么简单的事情来说,似乎需要做很多工作。有没有更好的解决方案?
你说得非常正确:
在一次讨论中,Simon 明确提到:
因此,我们将引发
WebDriverWait
,然后每次打开新选项卡/窗口时收集窗口句柄,最后迭代窗口句柄和switchTo().window(newly_opened)
根据需要:Java:
控制台输出:
其他
您可以在以下位置找到基于 python 的讨论在新选项卡中打开 Web Selenium + Python p>