如何通过Python启动新Firefox窗口并打开多个标签页

4 投票
2 回答
4555 浏览
提问于 2025-04-15 21:40

我想创建一个在Windows系统上运行的Python程序,每次运行时都会打开一个新的Firefox窗口,并且里面有多个标签页。比如说,如果我想搜索“hello”,就会弹出一个新窗口(即使已经有Firefox窗口打开),然后在里面打开Google和Bing的标签页,搜索“hello”。如果我把关键词改成“world”,又会弹出一个新的浏览器窗口,里面有Google和Bing的标签页,搜索“world”。

我查过webbrowser模块,但没能做到以下两点:
1. 当浏览器已经打开时,启动一个新的浏览器窗口:例如,webbrowser.open('http://www.google.com',new=1) 这样做会在已有的窗口中打开一个新标签,而不是新窗口。
2. 在同一个窗口中同时打开多个标签页。

希望能得到帮助。

谢谢。

2 个回答

6

在Python 3.6中,一个完整的答案会包含两个函数:webbrowser.open_new()和webbrowser.open_new_tab(),这两个函数的详细信息可以在webbrowser文档中找到。

import webbrowser

def main():
    # print(webbrowser._browsers) # for Python 3.x to determine .get() arg
    browser = webbrowser.get('firefox')

    urls = ['url1', 'url2', 'url3']

    first = True
    for url in urls:
        if first:
            browser.open_new(url)
            first = False
        else:
            browser.open_new_tab(url)

if __name__ == '__main__':
    main()

希望你喜欢这段代码。如果对你有帮助,给个赞哦!干杯!

4

webbrowser这个库没法给你这么多控制权。你可以用subprocess来代替,明确地启动Firefox浏览器,打开一个新窗口,然后再往里面添加标签页。关于Firefox的命令行参数,你可以在这里找到,不过简单来说,你需要用firefox.exe -new-window <url>来打开一个新窗口(当然,<url>要换成你想打开的网址),然后用一个或多个firefox.exe -new-tab <url>来添加标签页(同样,<url>要换成你想打开的网址)。你可能还想控制窗口的宽度和高度,或者使用不同于默认的用户配置文件等等——这些都可以通过命令行参数来实现。

撰写回答