鉴于此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,
答案 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)