它们之间的区别是什么
Webdriver.Close () Webdriver.Quit () Webdriver.Dispose ()
什么时候用哪一种?
它们之间的区别是什么
Webdriver.Close () Webdriver.Quit () Webdriver.Dispose ()
什么时候用哪一种?
当前回答
driver.close()和driver.quit()的区别
司机。close -关闭设置焦点的浏览器窗口。
司机。quit -它基本上调用driver。dispose方法将关闭所有浏览器窗口并优雅地结束WebDriver会话。
其他回答
基于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():退出这个驱动程序,关闭所有打开的相关窗口。
close():关闭当前窗口,如果它是当前打开的最后一个窗口,则退出浏览器。
“退出”和“接近”有两个区别。
因为Quit()将关闭程序打开的所有窗口,而Close()将关闭焦点集中在set上的正确窗口。 Quit() -考虑,WebDriver驱动=新的ChromeDriver(); 上述语句将创建一个会话ID。为整个会话维护相同的会话ID。 会话ID - 73e6d7c2ae55d9f059ad1cce248adb75
输入url后,相同的会话ID - 73e6d7c2ae55d9f059ad1cce248adb75
在currentUrl()之后,会话ID - 73e6d7c2ae55d9f059ad1cce248adb75
在quit()后浏览器的会话ID - null
如果用户试图执行任何语句,会话ID null将发送给服务器。在看到这个,服务器将发送异常-会话ID为空。调用quit()后使用WebDriver ?
在Close()中,将为整个会话创建和维护随机会话ID(只有一个)。执行Close()后,会话将无效或过期。 异常
因此,在quit()中会话为空,在close()中会话id无效。
driver.close()和driver.quit()在会话ID方面的差异。
司机。close -关闭设置焦点的浏览器窗口 如果在driver之后使用driver instance。NoSuchSessionException:无效的会话id
司机。quit -它基本上调用driver。dispose方法将关闭所有浏览器窗口并优雅地结束WebDriver会话 如果在driver之后使用driver instance。NoSuchSessionException:会话id为null
close():-假设你用相同的驱动程序实例打开了多个浏览器窗口,现在在驱动程序实例上调用close()将关闭驱动程序实例指向的当前窗口。但是驱动程序实例仍然保留在内存中,可以用来处理其他打开的浏览器窗口。
quit():-如果你在驱动实例上调用quit(),并且有一个或多个浏览器窗口打开,它将关闭所有打开的浏览器窗口,驱动实例将被垃圾收集,即从内存中删除。所以现在你不能使用这个驱动程序实例在调用quit()之后做其他操作。如果你这样做,它将抛出一个异常。
dispose():-我不认为WebDriver实例有dispose方法。
你可以去这个selenium官方java文档链接进行参考。