在我看来,Python 的网络浏览器“new=0”功能( see here )在同一个选项卡或窗口中打开一个新的 url,但它从来没有工作过。
文档使用“如果可能”之类的狡猾语言来掩盖这个问题。
有人在网络浏览器模块中看到过此功能的成功吗?是否有任何已知的解决方法可以实现此功能?
<小时/>我尝试使用
设置网络浏览器webbrowser.get(TYPE)
然后继续打开网址。我也尝试过使用多种不同的浏览器,但仍然没有成功。难道这已经不可能了吗?我应该只使用 Selenium 吗?
<小时/>除此之外,我还查看过 this 7年前的帖子。我希望从那时起事情已经发生了变化,人们已经找到了解决这个问题的方法。
非常感谢任何帮助或见解。
最佳答案
我正在使用 MacOS 和 Chrome,并遇到了这个问题。我注意到,对于 MacOS,webbrowser.py 只是构建了一个小 applescript 并使用“打开位置”命令打开 URL,例如
script = 'open location "%s"' % url.replace('"', '%22')
内置的“打开位置”命令似乎不支持在现有选项卡中打开网址
我在 applescript 示例中进行了搜索,发现您可以使用 Chrome applescript 字典中的命令在事件选项卡中打开 URL,如下所示:
tell application "Google Chrome"
tell front window
set URL of active tab to "www.google.com"
end tell
end tell
我只需要在本地项目上执行此操作,因此我只是进行了覆盖“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')
关于python - webbrowser python 在同一选项卡中打开新的 url。这有用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43175553/