Chrome Pythons Webbrowser模块永远不会在新窗口中打开链接

wqsoz72f  于 2023-01-15  发布在  Go
关注(0)|答案(1)|浏览(144)

我试图自动打开多个用户配置文件给出了几个不同网站上的名称列表,但我找不到一种方法来打开一个链接在一个新的窗口,这意味着我不能排序不同的网站,我打开到自己的窗口集合。
下面是我代码:

import webbrowser

chrome_path="C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe"
firefox_path="C:\\Program Files\\Mozilla Firefox\\Firefox.exe"
strURL = "http://www.python.org"

webbrowser.register('chrome', None,webbrowser.BackgroundBrowser(chrome_path),1)
webbrowser.register('firefox', None,webbrowser.BackgroundBrowser(chrome_path),1)

webbrowser.open(strURL, new=0)
webbrowser.open(strURL, new=1)
webbrowser.open(strURL, new=2)
webbrowser.get('chrome').open(strURL)
webbrowser.get('firefox').open(strURL)
webbrowser.get('chrome').open_new(strURL)
webbrowser.get('firefox').open_new(strURL)

无论我把什么值作为new(0,1,or 2),所有曾经发生的是它打开一个新的标签在这最后窗口我点击之上.我已经尝试了所有的其他方法,我发现在这python文档为这webbrowser模块和每个人在线仅仅是说使用"new = 1"或www.example.com_newwebbroswer.open_new() but neither of those work. and even when i point it at firefox it just goes to chrome.
附言
我发现了一个我不完全满意的小变通方案。

import webbrowser

chrome_path = "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe %s"
chrome_path_NW = "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe %s --new-window"
firefox_path = "C:\\Program Files\\Mozilla Firefox\\Firefox.exe"
strURL = "http://www.python.org"

controller = webbrowser.get(chrome_path)
controllerNW = webbrowser.get(chrome_path_NW)

controllerNW.open(strURL, new=0)
controller.open(strURL, new=1)
controller.open(strURL, new=2)
controller.open("www.youtube.com", new=2)

重要的是要看"chrome_path"变量。我已经改变了它,所以它将作为一个命令运行并接受参数。我发现了一些chrome的启动参数,在这里,这似乎也适用于chrome。"--new-window"将打开一个新窗口,然后我可以在该窗口中打开更多的标签,但这是一个总的pythons模块,我不相信会工作。t break如果我正在尝试使用chrome同时运行这个脚本。如果有任何功能,我可以将链接组合在一起,在特定的窗口中打开,这将是对我更有用。

vs3odd8k

vs3odd8k1#

我意识到这有点晚了,但希望我能在将来帮助到一些人。基本上,你需要在加载一个新网页之前使用子进程模块打开一个新窗口

import subprocess
import time
import webbrowser

subprocess.Popen('open -a /Applications/Google\ Chrome.app --new', shell=True)
time.sleep(0.5) # this is to let the app open before you try to load a new page
webbrowser.open(url)

相关问题