I want to create a MSWindows Python program that would launch a new Firefox window with multiple tabs each time it is run. For example if I want to search "hello", a new window pops out (even if a Firefox window is already open) and then launches a Google and Bing tabs searching for "hello". If I change the keyword to "world", a new browser pops out again with Google and Bing tabs searching for "world".
I've looked at the webbrowser module but couldn't get it to: 1. Launch a new browser when a browser is already open: eg webbrowser.open(' http://www.google.com ',new=1) will instead open a new tab 2. Launch multiple tabs simultaneously in the same window
Appreciate the help.
Thanks.
webbrowser
just doesn't give you this degree of control. Use subprocess
instead, to explicitly launch firefox with a new window and then add tabs to it. The firefox command line arguments reference is here , but, briefly, what you want is one firefox.exe -new-window <url>
(using the URL you want in lieu of <url>
of course), then one or more firefox.exe -new-tab <url>
(ditto). You may also want to control width and height, use a different profile from the default one, etc -- the command-line arguments let you do all that.
In python 3.6, a complete answer will include both webbrowser.open_new() and webbrowser.open_new_tab() from the webbrowser docs .
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()
Enjoy the code. +1 if it helped you out. Cheers!
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.