如何使用Python webbrowser包关闭当前的浏览器标签页

22
使用Python webbrowser包,可以打开一个指定URL的新标签页。是否有一种方法可以关闭此标签页?我参考了下面的官方文档,但未提及任何与关闭操作相关的内容。
Python webbrowser包文档:https://docs.python.org/3/library/webbrowser.html

9
webbrowser模块不能直接与您的浏览器交互,它只使用操作系统功能打开URL,这与在第三方程序(例如办公室或PDF文档)中单击链接的方式完全相同。没有等效的功能来“关闭”一个选项卡(这对许多原因都是不好的想法 - 您希望Acrobat或Office能够打开标签页,但不能关闭随意的选项卡),因此您的问题的答案是不可能的。 - l4mpi
感谢您提供如此清晰的解释。是否有一种使用Python关闭Chrome浏览器中活动选项卡的方法? - kane.zorfy
2
@l4mpi:在我看来,那应该是一个答案而不是一个评论。 :-) - BlackJack
4个回答

11

当您的任务完成时,您可以使用pyautogui来关闭浏览器标签页。

import time,webbrowser, pyautogui
def open_close(url="https://www.python.org/"):
    webbrowser.open(url)
    time.sleep(20)
    pyautogui.hotkey('ctrl', 'w')
    print("tab closed")

5

0

你可以

使用 pykeyboard 库中的热键,你可以在 https://github.com/SavinaRoja/PyUserInput 中了解更多信息。

或者使用 keyboard 库,该库位于 https://github.com/boppreh/keyboard

另一个(但可能更差的)选择是:

你可以使用 "taskkill" 命令,例如:

import os    
os.system("taskkill /im chrome.exe /f")

然而,这只会终止所有进程并关闭所选程序(在本例中为chrome.exe)。

(这也可能会删除浏览器中的数据,例如您失去了所有窗口,即使您已在设置中选择保存它们以供下次打开浏览器使用)


-3

如果您正在使用Selenium包,可以通过driver.close关闭选项卡。


1
欢迎来到SO,请阅读https://stackoverflow.com/help/how-to-answer。 - blondelg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接