Selenium Web驱动程序在没有会话的情况下关闭



我有一个执行6小时的测试。2个小时后,由于Chrome浏览器的特性,我的驱动程序变慢了。解决方案是关闭浏览器并重新启动它。我发现执行driver.quit()有助于提高性能,因为使用了一些内部内存,这会导致测试变得缓慢。我想知道是否有在不关闭驱动程序的情况下使用driver.quit()的选项,因为我需要在该会话中生成的cookie,以及不杀死当时正在运行的Python脚本。

driver.quit()的目的是关闭所有浏览器窗口并终止WebDriver会话。所以不,如果不关闭驱动程序,就不能使用driver.quit()——这就是它的作用。

在我看来,你应该看看为什么你会有这个问题:

  • 真的有理由在同一会话中运行6小时的测试吗当然也可能有特殊情况,但好的做法是将整个测试集合切割成独立的集,其中每个集都可以在"干净"的环境(即新的浏览器会话(上独立运行。这不仅可以防止您面临的问题,还可以提高测试的可靠性(即,当一个测试扰乱了未来所有测试执行时的多米诺骨牌效应(、调试能力(想象一下,您在第3小时运行的测试有问题,当您单独运行它时,问题是不可重现的,或者您不能单独运行它(以及执行的灵活性。

  • 为什么浏览器需要在2小时后重新启动不,这不是"Chrome的本质"。这是某个地方的错误——内存泄漏,或者其他什么。也许值得调查一下它是关于什么的。因为你可以在2小时后停止测试,但你会告诉你的用户不要使用你的应用程序超过2小时吗?即使这是Selenium驱动程序中的一个错误,为了您和其他人的利益,也值得向Selenium开发人员报告。

相关内容

  • 没有找到相关文章