它们之间的区别是什么

Webdriver.Close () Webdriver.Quit () Webdriver.Dispose ()

什么时候用哪一种?


当前回答

基于PhantomJS在Github上的一个问题,quit()不会终止PhantomJS进程。 你应该使用:

import signal
driver = webdriver.PhantomJS(service_args=service_args)
# Do your work here

driver.service.process.send_signal(signal.SIGTERM)
driver.quit()

link

其他回答

我的理解是driver.close();将关闭当前浏览器, 和driver.quit ();将终止所有的浏览器。

基于PhantomJS在Github上的一个问题,quit()不会终止PhantomJS进程。 你应该使用:

import signal
driver = webdriver.PhantomJS(service_args=service_args)
# Do your work here

driver.service.process.send_signal(signal.SIGTERM)
driver.quit()

link

driver.close()和driver.quit()在会话ID方面的差异。

司机。close -关闭设置焦点的浏览器窗口 如果在driver之后使用driver instance。NoSuchSessionException:无效的会话id

司机。quit -它基本上调用driver。dispose方法将关闭所有浏览器窗口并优雅地结束WebDriver会话 如果在driver之后使用driver instance。NoSuchSessionException:会话id为null

硒WebDriver

close()该方法用于关闭当前打开的窗口。它将关闭驱动程序所关注的当前打开的窗口。 WebDriver. quit()该方法用于销毁WebDriver实例。它会关闭与该驱动程序相关的所有浏览器窗口,并安全结束会话。WebDriver.Quit()调用Dispose。 该方法关闭所有浏览器窗口并安全结束会话

Close()是一个webdriver命令,关闭当前正在关注的浏览器窗口。尽管这个方法的名字很熟悉,WebDriver并没有实现AutoCloseable接口。

在自动化过程中,如果打开了多个浏览器窗口,那么close()命令将只关闭当前有焦点的浏览器窗口。其余的浏览器窗口将不会关闭。下面的代码可以用来关闭当前浏览器窗口:

Quit()是一个webdriver命令,它调用驱动程序。dispose方法,该方法反过来关闭所有浏览器窗口并终止WebDriver会话。如果我们没有在程序结束时使用quit(), WebDriver会话将不能正常关闭,文件将不能从内存中清除。这可能会导致内存泄漏错误。

如果自动化进程只打开一个浏览器窗口,close()和quit()命令以相同的方式工作。当在自动化过程中打开多个浏览器窗口时,两者的功能将有所不同。

参考:点击这里

处理命令 Dispose()应该调用Quit(),看起来确实调用了。然而,它也有同样的问题,在手动关闭PhantomJS之前,任何后续操作都会被阻塞。

参考链接