根据文档http://docs.python.org/3.3/library/webbrowser.html,它应该在默认浏览器中打开,但出于某种原因在我的机器上它打开IE。我做了谷歌搜索,我遇到了一个答案,说我需要注册浏览器,但我不知道如何使用webbrowser.register(),文档似乎不是很清楚。如何注册Chrome以便我在Chrome浏览器中传递给webbrowser.open()的网址而不是IE?
答案 0 :(得分:55)
您可以使用Chrome的路径调用get()。下面是一个示例 - 将chrome_path替换为您平台的正确路径。
import webbrowser
url = 'http://docs.python.org/'
# MacOS
chrome_path = 'open -a /Applications/Google\ Chrome.app %s'
# Windows
# chrome_path = 'C:/Program Files (x86)/Google/Chrome/Application/chrome.exe %s'
# Linux
# chrome_path = '/usr/bin/google-chrome %s'
webbrowser.get(chrome_path).open(url)
答案 1 :(得分:28)
对于Windows,路径使用UNIX样式路径,因此将反斜杠设置为正斜杠。
webbrowser.get("C:/Program Files (x86)/Google/Chrome/Application/chrome.exe %s").open("http://google.com")
请参阅:Python: generic webbrowser.get().open() for chrome.exe does not work
答案 2 :(得分:7)
import webbrowser
new = 2 # open in a new tab, if possible
# open a public URL, in this case, the webbrowser docs
url = "http://docs.python.org/library/webbrowser.html"
webbrowser.get(using='google-chrome').open(url,new=new)
您可以通过更改a link
中给出的参数“使用”来使用任何其他浏览器答案 3 :(得分:3)
为我工作,以在google-chrome上打开新标签页:
import webbrowser
webbrowser.open_new_tab("http://www.google.com")
答案 4 :(得分:2)
我注意到并遇到问题的一件事是斜杠,在 Windows 中,你需要在路径中有两个斜杠,然后这可以正常工作。
import webbrowser
chrome_path = "C://Program Files (x86)//Google//Chrome//Application//Chrome.exe %s"
webbrowser.get(chrome_path).open("https://github.com/")
这至少对我有用
答案 5 :(得分:1)
from selenium import webdriver
#driver = webdriver.Firefox()
driver = webdriver.Chrome()
driver.get("http://www.python.org")
答案 6 :(得分:1)
放置Chrome应用程序的路径,不要忘记将%s放在最后。我仍然试图用html代码打开浏览器而不保存文件......我会在找到文件后添加代码。
Function
答案 7 :(得分:1)
你也可以使用这个:
import webbrowser
chrome_path = r"C:\Program Files\Google\Chrome\Application\chrome.exe"
url = "http://docs.python.org/"
webbrowser.register('chrome', None, webbrowser.BackgroundBrowser(chrome_path))
webbrowser.get('chrome').open_new_tab(url)
答案 8 :(得分:1)
请检查以下内容:
import webbrowser
chrome_path = 'C:/Program Files (x86)/Google/Chrome/Application/chrome.exe %s'
webbrowser.get(chrome_path).open('http://docs.python.org/')
答案 9 :(得分:1)
将此用于我玩的游戏,这很重要,因此我将其保留。真的很简单。从platform.system获取价值。根据不同操作系统的已知值对其进行检查。如果找到匹配项,它将为您设置镶边路径。如果没有找到,它将打开默认浏览器到您的链接。希望它对某人有用。
import time
import os
import webbrowser
import platform
user_OS = platform.system()
chrome_path_windows = 'C:/Program Files (x86)/Google/Chrome/Application/chrome.exe %s'
chrome_path_linux = '/usr/bin/google-chrome %s'
chrome_path_mac = 'open -a /Applications/Google\ Chrome.app %s'
chrome_path = ''
game_site_link = 'https://www.gamelink'
if user_OS == 'Windows':
chrome_path = chrome_path_windows
elif user_OS == 'Linux':
chrome_path = chrome_path_linux
elif user_OS == 'Darwin':
chrome_path = chrome_path_mac
elif user_OS == 'Java':
chrome_path = chrome_path_mac
else:
webbrowser.open_new_tab(game_site_link)
webbrowser.get(chrome_path).open_new_tab(game_site_link)
实际上我在此进行了一些更改,因为我仍在使用此启动器,因此已对其进行了更新
import time
import webbrowser
import platform
import subprocess
import os
import sys
privateServerLink = 'https://www.roblox.com/games/2414851778/TIER-20-Dungeon-Quest?privateServerLinkCode=GXVlmYh0Z7gwLPBf7H5FWk3ClTVesorY'
userBrowserC = input(str("Browser Type: chrome, opera, iexplore, firefox : "))
userSleepTime = int(input("How long do you want it to run?"))
if userBrowserC == 'opera':
userBrowserD = 'launcher.exe'
else:
userBrowserD = userBrowserC
if userBrowserC == "chrome":
taskToKill = "chrome.exe"
else:
taskToKill = "iexplore.exe"
if userBrowserC == 'chrome' and platform.system() == 'Windows':
browserPath = 'C:/Program Files (x86)/Google/Chrome/Application/chrome.exe %s'
elif userBrowserC == 'chrome' and platform.system() == 'Linux':
browserPath = '/usr/bin/google-chrome %s'
elif userBrowserC == 'chrome' and platform.system() == 'Darwin' or
platform.system() == 'Java':
browserPath = 'open -a /Applications/Google\ Chrome.app %s'
elif userBrowserC == 'opera' and platform.system() == 'Windows':
browserPath = 'C:/Users/'+ os.getlogin() +'/AppData/Local/Programs/Opera/launcher.exe'
elif userBrowserC == 'iexplore' and platform.system() == 'Windows':
browserPath = 'C:/Program Files/internet explorer/iexplore.exe %s'
elif userBrowserC == 'firefox' and platform.system() == 'Windows':
browserPath = 'C:/Program Files/Mozilla Firefox/firefox.exe'
else:
browserPath = ''
while 1 == 1:
subprocess.Popen('SynapseX.exe')
time.sleep(7)
webbrowser.get(browserPath).open_new_tab(privateServerLink)
time.sleep(7)
os.system('taskkill /f /im '+taskToKill)
time.sleep(userSleepTime)
答案 10 :(得分:0)
信不信由你这是最简单的方法
webbrowser.open("www.stackoverflow.com")#just remove https:// or http:// and simply add www.something.com
以这个网址为例
<块引用>https://something.com
如果你给这个网址:https://something.com 或 something.com 它将在 IE 中打开
但是如果你这样输入:www.something.com 它将在 chrome 中打开
你可以试试这个,这会奏效!
(注意:如果它有其他后缀,例如 take https://meet.google.com,例如,如果您尝试将 www. 添加到其中,您的浏览器将抛出拼写错误)
答案 11 :(得分:0)
当你有一个无效的 URL(确保 URL 以 https:// 或 http:// 开头,如果不是,添加它),它通常会打开默认的 IE。
答案 12 :(得分:0)
if sys.platform[:3] == "win":
# First try to use the default Windows browser
register("windows-default", WindowsDefault)
# Detect some common Windows browsers, fallback to IE
iexplore = os.path.join(os.environ.get("PROGRAMFILES", "C:\\Program Files"),
"Mozilla Firefox\\FIREFOX.EXE")
for browser in ("firefox", "firebird", "seamonkey", "mozilla",
"netscape", "opera", iexplore):
if shutil.which(browser):
register(browser, None, BackgroundBrowser(browser))
100%工作。...请参阅行号535-545。.根据您的要求将iexplore的路径更改为firefox或Chrome。 在我的情况下,我在上面的代码中为Firefox设置更改了路径...
答案 13 :(得分:0)
我通过下面的@mehrdad的答案找到了自己的问题的答案。若要以通用方式从Windows查询浏览器路径,@ mehrdad提供了一个不错的简短代码,该代码使用Windows注册表,但没有包含足够的上下文来使其正常工作。
import os
import winreg
import shlex
def try_find_chrome_path():
result = None
if winreg:
for subkey in ['ChromeHTML\\shell\\open\\command', 'Applications\\chrome.exe\\shell\\open\\command']:
try: result = winreg.QueryValue(winreg.HKEY_CLASSES_ROOT, subkey)
except WindowsError: pass
if result is not None:
result_split = shlex.split(result, False, True)
result = result_split[0] if result_split else None
if os.path.isfile(result):
break
result = None
else:
expected = "google-chrome" + (".exe" if os.name == 'nt' else "")
for parent in os.environ.get('PATH', '').split(os.pathsep):
path = os.path.join(parent, expected)
if os.path.isfile(path):
result = path
break
return result
print(try_find_chrome_path())
感谢答案@mehrdad !!
答案 14 :(得分:0)
如果您在Windows中设置了默认浏览器,则可以执行以下操作:
open_google = webbrowser.get('windows-default').open('https://google.com')
答案 15 :(得分:0)
这是一种通向Chrome的强大方法。
(请注意,仅当您特别需要Chrome而不是默认浏览器,Chromium或其他工具时,才应该这样做。)
def try_find_chrome_path():
result = None
if _winreg:
for subkey in ['ChromeHTML\\shell\\open\\command', 'Applications\\chrome.exe\\shell\\open\\command']:
try: result = _winreg.QueryValue(_winreg.HKEY_CLASSES_ROOT, subkey)
except WindowsError: pass
if result is not None:
result_split = shlex.split(result, False, True)
result = result_split[0] if result_split else None
if os.path.isfile(result):
break
result = None
else:
expected = "google-chrome" + (".exe" if os.name == 'nt' else "")
for parent in os.environ.get('PATH', '').split(os.pathsep):
path = os.path.join(parent, expected)
if os.path.isfile(path):
result = path
break
return result
答案 16 :(得分:-1)
在Selenium中获取活动标签的URL,尝试
from selenium import webdriver
driver = webdriver.Firefox()
print driver.current_url # This will print the URL of the Active link
driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + Keys.TAB)
print driver.current_url
我在这里只为您提供伪代码。
您可以将其置于循环中并创建自己的流程。
我是Stackoverflow的新手,所以还在学习如何写出正确的答案。
答案 17 :(得分:-1)
至少在Windows中它必须足够,你不必关心浏览器的路径。
import webbrowser
url = 'https://stackoverflow.com'
webbrowser.open(url)