如何通过Python启动新Firefox窗口并打开多个标签页
我想创建一个在Windows系统上运行的Python程序,每次运行时都会打开一个新的Firefox窗口,并且里面有多个标签页。比如说,如果我想搜索“hello”,就会弹出一个新窗口(即使已经有Firefox窗口打开),然后在里面打开Google和Bing的标签页,搜索“hello”。如果我把关键词改成“world”,又会弹出一个新的浏览器窗口,里面有Google和Bing的标签页,搜索“world”。
我查过webbrowser模块,但没能做到以下两点:
1. 当浏览器已经打开时,启动一个新的浏览器窗口:例如,webbrowser.open('http://www.google.com',new=1) 这样做会在已有的窗口中打开一个新标签,而不是新窗口。
2. 在同一个窗口中同时打开多个标签页。
希望能得到帮助。
谢谢。
2 个回答
在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()
希望你喜欢这段代码。如果对你有帮助,给个赞哦!干杯!
webbrowser
这个库没法给你这么多控制权。你可以用subprocess
来代替,明确地启动Firefox浏览器,打开一个新窗口,然后再往里面添加标签页。关于Firefox的命令行参数,你可以在这里找到,不过简单来说,你需要用firefox.exe -new-window <url>
来打开一个新窗口(当然,<url>
要换成你想打开的网址),然后用一个或多个firefox.exe -new-tab <url>
来添加标签页(同样,<url>
要换成你想打开的网址)。你可能还想控制窗口的宽度和高度,或者使用不同于默认的用户配置文件等等——这些都可以通过命令行参数来实现。