Python webbrowser.open() - 设置 new=0 在同一浏览器窗口打开无效
给定这段Python代码:
import webbrowser
webbrowser.open("http://slashdot.org",new=0)
webbrowser.open("http://cnn.com",new=0)
我本以为浏览器会打开,先加载第一个网站,然后在同一个窗口中加载第二个网站。然而,它却在一个新窗口(或者新标签页,具体取决于我用的浏览器)中打开。
我在Mac OSX上用Safari、Firefox和Chrome测试过,也在Ubuntu上用Firefox试过。我觉得new=0这个设置没有起作用。我是不是漏掉了什么?
谢谢!
2 个回答
0
我在连续调用 webbrowser.open()
之间加了一个延迟。这样每次打开的链接就会在新的标签页里,而不是在单独的窗口中(我用的是Windows 10电脑)。
import time
...
time.sleep(0.5)
6
请注意,文档中特别提到在语言方面不保证一定能做到,尽量避免这种情况: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)