Álv*_*anz 2 python selenium selenium-webdriver
我想关闭所有打开的选项卡(浏览器窗口)而不实际关闭驱动程序,因为我想继续使用它。
driver.close()只会关闭聚焦的选项卡。
driver.quit() 将关闭它们,但也会退出驱动程序。
我想过使用driver.quit()然后重新打开驱动程序。但是好像不是很干净。或者它可能是超级干净的,但也是一件很慢的事情。
注意:通过geckodriver使用 Firefox
我该如何解决这个问题?
aut*_*leg 10
窗把手也可以用于此目的。循环遍历所有打开的窗口并关闭它们:
for handle in driver.window_handles:
driver.switch_to.window(handle)
driver.close()
Run Code Online (Sandbox Code Playgroud)
这应该会关闭所有浏览器窗口。
小智 9
curr=driver.current_window_handle
for handle in driver.window_handles:
driver.switch_to.window(handle)
if handle != curr:
driver.close()
Run Code Online (Sandbox Code Playgroud)
您可以通过发送ctrl + w到页面来关闭选项卡,直到没有任何选项卡为止。记录您打开的选项卡数量并使用循环关闭它们
from selenium.webdriver.common.keys import Keys
num_of_tabs = ...
for x in range(1, num_of_tabs):
self.driver.find_element_by_tag_name('body').send_keys(Keys.COMMAND + 'W')
Run Code Online (Sandbox Code Playgroud)
这将关闭除一个之外的所有选项卡。关闭最后一个不会关闭driver,但您将无法使用它。