Selenium Webdriver关闭没有会话

时间:2018-11-29 17:10:24

标签: python selenium selenium-webdriver selenium-chromedriver

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

1 个答案:

答案 0 :(得分:1)

driver.quit()的目的是关闭所有浏览器窗口并终止WebDriver会话。因此,不行,如果不关闭驱动程序,您将无法使用driver.quit()-就是这样做的。

我认为,您应该看看为什么有这个问题:

  • 真的有理由在同一会话中运行6个小时的测试吗?当然可能会有特殊情况,但是好的做法是将整个测试集合划分为 独立 集合,其中每个集合都可以在“干净”的环境(即新的浏览器会话)上独立运行。这不仅可以避免您面临的问题,而且还可以提高测试的可靠性(即,当一个测试使将来所有测试执行都陷入混乱时的多米诺效应),调试的能力(想象您在第3小时运行的测试有问题) ,并且当您单独运行它或无法单独运行它时,该问题是无法再现的),并且执行的灵活性也是如此。

  • 为什么2小时后需要重新启动浏览器?不,这不是“ Chrome的本质”。这是某个地方的错误-内存泄漏或其他错误。可能值得研究一下它的含义。因为您可以在2个小时后停止测试,但是您是否要告诉用户不要使用超过2个小时的应用程序?即使这是Selenium驱动程序中的错误,也可能值得您向Selenium开发人员报告,以便您以及其他所有人受益。