如何使用Python启动带有多个选项卡的新Firefox窗口

4
我想创建一个MSWindows 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文档的webbrowser.open_new()和webbrowser.open_new_tab()。
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替换<url>),然后一个或多个firefox.exe -new-tab <url>(同理)。您还可以控制宽度和高度,使用与默认配置文件不同的配置文件等-命令行参数让您做到这一点。

@新手,在SO上,“感谢是银,采纳是金”--如果我的答案解决了你的问题,为什么不接受它(使用在答案左侧你可以看到的投票数量下方的复选标志形状图标)?-) - Alex Martelli
使用默认搜索引擎搜索文本,您可以使用firefox.exe -search "您的搜索文本"。这将打开一个新窗口,显示搜索结果。 - toc777

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接