2009-10-07 3 views
10

webbrowser library обеспечивает удобный способ запуска URL-адреса с окном браузера через метод webbrowser.open(). Доступны многочисленные типы браузеров, но не существует явного способа запуска Internet Explorer при запуске python в окнах.Открыть окно браузера IE

WindowsDefault работает только в том случае, если Internet Explorer установлен как браузер по умолчанию, что не является предположением, которое я могу сделать.

Есть ли способ явно запустить URL-адрес в Internet Explorer без обращения к вызовам API Windows?

+3

Есть ли причина, по которой вам нужно запустить IE? – voyager

+2

Страница, которую я запускаю, представляет собой локальный файл html, созданный с помощью ms-office, который использует ужасную разметку, которую только IE может понять правильно. Это будет внутренний скрипт, поэтому автономия пользователя не проблема. –

ответ

19

Более элегантный код:

import webbrowser 

ie = webbrowser.get(webbrowser.iexplore) 
ie.open('google.com') 
3

Самый простой способ:

import subprocess 
subprocess.Popen(r'"C:\Program Files\Internet Explorer\IEXPLORE.EXE" www.google.com') 
+6

Имейте в виду, что неанглийские версии Windows по-разному называют папку 'Program Files'. «Archivos de Programa», например, на испанском языке. Вместо этого вы должны использовать '% PROGRAMFILES %'. – voyager

4

Вы всегда можете сделать что-то вроде

subprocess.Popen('"C:\\Program Files\\Internet Explorer\\iexplore.exe" http://www.example.com') 
14
>>> ie = webbrowser.get('c:\\program files\\internet explorer\\iexplore.exe') 
>>> ie.open('http://google.com') 
True 
+0

Я продолжаю получать «Ошибка: не удалось найти запущенный браузер» – BritishSteel

7
iexplore = os.path.join(os.environ.get("PROGRAMFILES", "C:\\Program Files"), 
    "Internet Explorer\\IEXPLORE.EXE") 
ie = webbrowser.BackgroundBrowser(iexplore) 
ie.open(...) 

Это то, что webrowser модуль использует внутренне.

+0

Не работает в фоновом режиме. Он всегда открывает страницу. Я на самом деле пробовал делать ie.Visible = 0 все еще не работает. – Fooo

2

Если вы планируете использовать сценарий в более чем вашей машине, имейте в виду, что не каждый имеет английскую версию Windows,

import subprocess 
import os 

subprocess.Popen(r'"' + os.environ["PROGRAMFILES"] + '\Internet Explorer\IEXPLORE.EXE" www.google.com') 
1

Пожалуйста, попробуйте положить абсолютный путь интернет-исследователя exe-файла в вашем коде.

ie=webbrowser.get("C:\Program Files\Internet Explorer\iexplore.exe") 
ie.open_new("http://google.com") 
Смежные вопросы