Python 正确启动/停止Selenium独立服务器

Python 正确启动/停止Selenium独立服务器,python,selenium,selenium-webdriver,Python,Selenium,Selenium Webdriver,我使用Selenium独立服务器作为远程web驱动程序。我想弄清楚的一件事是如何有效地启动/停止它。在他们的文件上,它说 调用者需要正确终止每个会话,调用Selenium#stop()或WebDriver#quit 我想做的是找出如何以编程方式关闭服务器,但这是必要的吗?换句话说,是否可以让服务器随时启动并运行,但每次使用后只需使用类似于driver.quit()的东西关闭会话即可?因此,当我不使用它时,服务器会启动,但不会有会话。你是对的。使用seleniumsdriver.quit(),因为

我使用Selenium独立服务器作为远程web驱动程序。我想弄清楚的一件事是如何有效地启动/停止它。在他们的文件上,它说

调用者需要正确终止每个会话,调用
Selenium#stop()
WebDriver#quit


我想做的是找出如何以编程方式关闭服务器,但这是必要的吗?换句话说,是否可以让服务器随时启动并运行,但每次使用后只需使用类似于
driver.quit()的东西关闭会话即可?因此,当我不使用它时,服务器会启动,但不会有会话。

你是对的。使用seleniums
driver.quit()
,因为它会正确关闭所有浏览器窗口并结束驱动程序的会话/进程。尤其是后者是您想要的,因为您最肯定的是无头运行脚本

我有一个selenium脚本作为Raspberry Pi(小时cron作业)headless运行。该脚本在每次迭代结束时调用
driver.quit()
。当我执行a
-ps a
(列出unix下的所有活动进程)时,不再显示活动的selenium/python进程

希望这能满足你的问题

当作为远程设备使用时,您需要在结束时调用
quit()
方法来正确终止每个会话

根据最佳实践,您应该在
tearDown(){}
中调用
quit()
方法。调用
quit()
通过发送带有{flags:[“eForceQuit”]}“quit”命令来删除当前浏览会话,最后在/shutdown端点上发送GET请求。下面是一个例子:

1503397488598   webdriver::server   DEBUG   -> DELETE /session/8e457516-3335-4d3b-9140-53fb52aa8b74 
1503397488607   geckodriver::marionette TRACE   -> 37:[0,4,"quit",{"flags":["eForceQuit"]}]
1503397488821   webdriver::server   DEBUG   -> GET /shutdown
因此,在调用
quit()
方法时,
Web浏览器
会话将完全终止该实例


工具书类 您可以在以下内容中找到一些相关的详细讨论: