它们之间的区别是什么
Webdriver.Close () Webdriver.Quit () Webdriver.Dispose ()
什么时候用哪一种?
它们之间的区别是什么
Webdriver.Close () Webdriver.Quit () Webdriver.Dispose ()
什么时候用哪一种?
当前回答
quit():退出这个驱动程序,关闭所有打开的相关窗口。
close():关闭当前窗口,如果它是当前打开的最后一个窗口,则退出浏览器。
其他回答
基于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
司机。靠近和司机。quit是在Selenium WebDriver中关闭浏览器会话的两种不同方法。理解它们并知道何时使用每种方法在您的测试执行中是很重要的。因此,我试图阐明这两种方法。
司机。close -该方法关闭设置焦点的浏览器窗口。尽管这个方法的名字很熟悉,WebDriver并没有实现AutoCloseable接口。
司机。这个方法基本上调用驱动程序。dispose一个now内部方法,它反过来关闭所有浏览器窗口并优雅地结束WebDriver会话。
司机。dispose -如前所述,是WebDriver的内部方法,根据另一个答案已被静默删除-需要验证。这种方法在正常的测试工作流程中实际上没有用例,因为前面的任何一种方法都应该适用于大多数用例。
解释用例: 你应该使用驱动程序。想要结束程序时随时退出。它将关闭所有打开的浏览器窗口并终止WebDriver会话。如果你不使用驱动程序。在程序结束时退出,WebDriver会话将不能正常关闭,文件将不能从内存中清除。这可能会导致内存泄漏错误。
以上的解释应该可以解释驱动器之间的区别。靠近和司机。退出WebDriver中的方法。我希望它对你有用。
以下网站有一些关于硒检测的好提示
Close() -用于关闭当前具有焦点的浏览器或页面。
Quit() -用于关闭web驱动程序实例或销毁web驱动程序实例(关闭所有窗口)。
Dispose() -我不知道这个方法。
Close()是一个webdriver命令,关闭当前正在关注的浏览器窗口。尽管这个方法的名字很熟悉,WebDriver并没有实现AutoCloseable接口。
在自动化过程中,如果打开了多个浏览器窗口,那么close()命令将只关闭当前有焦点的浏览器窗口。其余的浏览器窗口将不会关闭。下面的代码可以用来关闭当前浏览器窗口:
Quit()是一个webdriver命令,它调用驱动程序。dispose方法,该方法反过来关闭所有浏览器窗口并终止WebDriver会话。如果我们没有在程序结束时使用quit(), WebDriver会话将不能正常关闭,文件将不能从内存中清除。这可能会导致内存泄漏错误。
如果自动化进程只打开一个浏览器窗口,close()和quit()命令以相同的方式工作。当在自动化过程中打开多个浏览器窗口时,两者的功能将有所不同。
参考:点击这里
处理命令 Dispose()应该调用Quit(),看起来确实调用了。然而,它也有同样的问题,在手动关闭PhantomJS之前,任何后续操作都会被阻塞。
参考链接
我的理解是driver.close();将关闭当前浏览器, 和driver.quit ();将终止所有的浏览器。