webbrowser python在同一选项卡中打开新的URL。这行得通吗?

Lam*_*mar 5 python browser url web

在我看来,Python的webbrowser'new = 0'功能(请参阅此处)在同一选项卡或窗口中打开新的url永远无法正常工作。

该文档使用诸如“ 如果可能 ”之类的狡猾语言来掩盖此问题。

有人在webbrowser模块中看到此功能成功吗?是否有已知的解决方法来实现此功能?


我尝试用设置浏览器

webbrowser.get(TYPE)
Run Code Online (Sandbox Code Playgroud)

在继续打开网址之前。我也尝试过使用各种不同的浏览器,但是仍然没有成功。难道这不可能了吗?我应该只使用吗?


除其他外,我已经检查了7年前的这篇文章。我希望此后一切都发生变化,人们已经找到了解决之道。

非常感谢您的帮助或见解。

小智 1

我正在使用 MacOS 和 Chrome,并遇到了这个问题。我注意到,对于 MacOS,webbrowser.py 只是构建了一个小 applescript 并使用“打开位置”命令打开 URL,例如,

script = 'open location "%s"' % url.replace('"', '%22') 
Run Code Online (Sandbox Code Playgroud)

内置“打开位置”命令似乎不支持在现有选项卡中打开网址

我在 applescript 示例中进行了搜索,发现您可以使用 Chrome applescript 字典中的命令在活动选项卡中打开 URL,如下所示:

tell application "Google Chrome"
    tell front window
        set URL of active tab to "www.google.com"
    end tell
end tell
Run Code Online (Sandbox Code Playgroud)

我只需要在本地项目上执行此操作,因此我只是进行了覆盖“script”变量中的字符串的肮脏修复,以强制它使用后一种格式,如下所示:

# script = 'open location "%s"' % url.replace('"', '%22') 
script = '''tell application "Google Chrome"
    tell front window
        set URL of active tab to "%s"
    end tell
end tell ''' % url.replace('"', '%22')
Run Code Online (Sandbox Code Playgroud)