网络浏览器在注册后不会在 Edge 浏览器中打开新选项卡



我从这里提取了一个脚本,并试图修改它以在Edge的新选项卡中打开几个URL。只要我知道网络浏览器模块没有预定义的Edge,所以我必须注册它。

这是脚本:

import webbrowser
import time
import os
url = 'https://www.bing.com/search?q=reddit'
webbrowser.register('edge', None, webbrowser.GenericBrowser(os.environ['ProgramFiles(x86)'] + r'MicrosoftEdgeApplicationmsedge.exe'), preferred=True)
webbrowser.open_new(url)
fh = open('binggenlist.txt')
for line in fh:
webbrowser.open(url+'+'+line)
time.sleep(2)
fh.close()

问题是,当我运行此脚本时,会打开一个新的Edge窗口,但不会打开新的选项卡。如果我关闭打开的窗口,则会出现一个新窗口,其中包含URL中文件的下一行。如果Edge在我运行脚本时已经打开,它可以正常工作。

我已经尝试过使用其他函数来打开一个新的选项卡,如open_new_tab或open_new,但结果是一样的。

问题在于"网络浏览器";模块得到控制,直到brwoser关闭。我认为你可以按照之前在以下链接上回答的问题中所讨论的那样对待这种情况:如何在打开Web浏览器后恢复程序(或退出(?

因为您的代码在省略注册行的情况下运行良好,但当然会使用defalt浏览器。因此,我尝试了您的代码,但使用了";msedge_proxy.exe";而不是";msedge.exe";,现在效果很好。

webbrowser.register('edge', None, webbrowser.GenericBrowser(os.environ['ProgramFiles(x86)'] + r'MicrosoftEdgeApplicationmsedge_proxy.exe'), preferred=True)

所以上面提到的小修改后的代码是:

import webbrowser
import time
import os
url = 'https://www.bing.com/search?q=reddit'
webbrowser.register('edge', None, webbrowser.GenericBrowser(os.environ['ProgramFiles(x86)'] + r'MicrosoftEdgeApplicationmsedge_proxy.exe'), preferred=True)
webbrowser.open(url)
fh = open('binggenlist.txt')
for line in fh:
webbrowser.open(url+'+'+line, new=2)
time.sleep(2)
fh.close()

试试看。

相关内容

最新更新