Python Selenium webdriver在没有会话的情况下关闭
我有一个持续6小时的测试。2小时后,由于Chrome浏览器的特性,我的驱动程序速度减慢。解决方案是关闭浏览器并重新启动它。我发现执行Python Selenium webdriver在没有会话的情况下关闭,python,selenium,selenium-webdriver,selenium-chromedriver,Python,Selenium,Selenium Webdriver,Selenium Chromedriver,我有一个持续6小时的测试。2小时后,由于Chrome浏览器的特性,我的驱动程序速度减慢。解决方案是关闭浏览器并重新启动它。我发现执行driver.quit()有助于提高性能,因为使用了一些内部内存,这会导致测试速度变慢。我想知道是否有选项可以在不关闭驱动程序的情况下使用driver.quit(),因为我需要在该会话中生成的cookie,并且不需要终止正在运行的Python脚本。driver.quit()的目的是关闭所有浏览器窗口并终止WebDriver会话。因此,如果不关闭驱动程序,就不能使用d
driver.quit()
有助于提高性能,因为使用了一些内部内存,这会导致测试速度变慢。我想知道是否有选项可以在不关闭驱动程序的情况下使用driver.quit()
,因为我需要在该会话中生成的cookie,并且不需要终止正在运行的Python脚本。driver.quit()的目的是关闭所有浏览器窗口并终止WebDriver会话。因此,如果不关闭驱动程序,就不能使用driver.quit()
——这就是它的作用
在我看来,你应该看看为什么你会有这个问题:
- 是否真的有理由在同一个会话中运行6个小时的测试?当然可能有特殊情况,但良好的做法是将整个测试集合切割成独立的集合,每个集合可以在“干净”环境(即新的浏览器会话)上独立运行。这不仅可以防止您面临的问题,还可以提高测试的可靠性(即,当一个测试扰乱了所有未来的测试执行时,会产生多米诺效应)、调试能力(假设您在3小时运行的测试中遇到问题,并且当您单独运行该测试时,该问题不可再现,或者无法单独运行该测试),以及执行的灵活性
- 为什么浏览器需要在2小时后重新启动?不,这不是“Chrome的特性”。这是某个地方的一个bug——内存泄漏,或者其他什么。这可能是值得调查的。因为你可以在2小时后停止测试,但是你会告诉你的用户不要使用你的应用程序超过2小时吗?即使它是Selenium驱动程序中的一个bug,为了您和其他所有人的利益,向Selenium开发人员报告它也是值得的