Python webbrowser.open() - 将new = 0设置为在同一浏览器窗口中打开不起作用

时间:2010-01-04 03:09:27

标签: python

鉴于此python代码:

import webbrowser
webbrowser.open("http://slashdot.org",new=0)
webbrowser.open("http://cnn.com",new=0)

我希望浏览器打开,加载第一个网站,然后在同一个窗口加载第二个网站 。但是,它会在新窗口中打开(或新选项卡,具体取决于我正在使用的浏览器)。

在Mac OSX上使用Safari,Firefox和Chrome以及在Ubuntue上使用Firefox进行尝试。我倾向于认为 new = 0 没有兑现。我只是错过了一些东西吗?

TIA,

2 个答案:

答案 0 :(得分:3)

请注意,文档明确避免使用语言保证http://docs.python.org/library/webbrowser.html#webbrowser.open

默认情况下,大多数浏览器设置都指定了标签行为,并且不允许Python覆盖它。我在过去使用过Firefox浏览过它,并在Chrome上尝试了相同的效果。

在Windows上,根据我的评论建议,根本无法指定标签行为。网址开头代码会忽略new

if sys.platform[:3] == "win":
    class WindowsDefault(BaseBrowser):
        def open(self, url, new=0, autoraise=True):
            try:
                os.startfile(url)

答案 1 :(得分:0)

我在webbrowser.open()的连续调用之间添加了一个延迟。然后在新标签页中打开每个文件,而不是在我的Windows 10计算机上的单独窗口中打开。

import time
...
time.sleep(0.5)