Selenium - 当前窗口关闭并在浏览器窗口中打开新窗口

Posted

技术标签:

【中文标题】Selenium - 当前窗口关闭并在浏览器窗口中打开新窗口【英文标题】:Selenium- Current window closes and new opens in a browser window 【发布时间】:2014-08-29 15:41:28 【问题描述】:

我正在尝试自动化一个应用程序,当我进入屏幕并单击一个按钮时,它会关闭当前窗口并打开新窗口,然后再次关闭并打开新窗口。这种情况发生了 4 次,最后我在要测试它的应用程序的窗口中。 Selenium WD 在打开时无法识别最终窗口。过去有人遇到过这个问题吗?

【问题讨论】:

当您手动执行该过程时,它可能工作正常?你能告诉我们你的代码的相关部分吗?否则我们只是在猜测...... 是的,当我手动操作时它工作正常。自动化团队过去使用 Rational Funtional Tester 并且能够完成这项工作。我们正在使用这个应用程序尝试 Selenium。很抱歉,由于它是一个内部应用程序,因此我无法在网络上为您提供示例。由于从启动页面到最终应用程序的 url 重定向,会发生关闭和打开。我曾尝试使用 WD 的 switchTo 和 getWindowHandler 方法,但没有运气。 如果你不能给出实际的代码,你能指定什么浏览器和版本以及 selenium 代码(使用变量以避免细节)对于 windows 的步骤 1、2、3、4成功然后第5步不成功?第五个窗口和其他窗口有什么不同吗? 【参考方案1】:

不确定,但一个可能的解决方案是告诉 Selenium 在它停止更改 4 次时将注意力集中在新打开的窗口上。

所以你等待你的应用程序打开/关闭所有这些窗口的时间,最后你这样做:

for(String winHandle : driver.getWindowHandles())
    driver.switchTo().window(winHandle);

这样 Selenium 应该专注于最后打开的窗口

【讨论】:

以上是关于Selenium - 当前窗口关闭并在浏览器窗口中打开新窗口的主要内容,如果未能解决你的问题,请参考以下文章

Java+Selenium——浏览器退出quit和close的区别

Java+Selenium 如何实现关闭当前窗口并返回上一个窗口-driver.close()

selenium 对浏览器标签页进行关闭和切换

如何阻止 codeception/selenium 在断言失败时关闭浏览器窗口?

selenium-2:导航及页面交互

必须收藏:Selenium webdriver API 大全