2010-01-22 100 views
4

我試圖創建一個簡單的腳本來打開一個本地託管的網站,用於在2個或更多瀏覽器中測試css。默認瀏覽器是IE7,它打開頁面正常,但是當我嘗試打開非默認瀏覽器(如Firefox或Arora)時,它只是失敗。Python ::如何在非默認瀏覽器中打開頁面

我正在使用webbrowser模塊,並嘗試了這種方式,詳見網站上的各個站點。

這是可能的,如果是的話如何?

+2

你是如何嘗試使用其他瀏覽器打開它的? – Geo 2010-01-22 13:45:25

+1

你正在收到什麼錯誤信息? – 2010-01-22 14:04:15

+0

我正在使用webbrowser.get()調用來傳遞我嘗試打開的瀏覽器的各種名稱。我也嘗試傳遞完整路徑,然後使用webbrowser.register()函數。 我經過一番深入研究後得到的錯誤消息在webbrowser模塊的第52行被拋出,並且因爲無法找到指定的瀏覽器而被拋出。 – 2010-01-23 08:56:15

回答

3

馬特的權利,它是知道一個非常有用的模塊...

18.1. subprocess

IDLE 2.6.2  
>>> import subprocess 
>>> chrome = 'C:\Users\Ted\AppData\Local\Google\Chrome\Application\chrome.exe' 
>>> chrome_args = 'www.rit.edu' 
>>> spChrome = subprocess.Popen(chrome+' '+chrome_args) 
>>> print spChrome.pid 
2124 
+0

這是正確的,但你應該引用路徑,甚至可能是URL。 – 2010-01-22 16:46:42

+0

我會放棄這一點。謝謝我沒有想過這樣做! – 2010-01-23 08:57:16

+0

Yeap就是這麼做的。感謝您的建議。 – 2010-01-25 10:15:00

0

這基本上可以歸結爲:

- run 'firefox "url"' 
- run 'iexplore "url"' 
- run 'other_browser "url"' 

我不知道夠不夠蟒蛇知道system()調用是如何實現的有,但它應該是相當簡單。

1

subprocess module應該提供你想要的東西,如果你給子進程提供瀏覽器的路徑。請注意,您需要Python 2.4或更高版本才能使用子進程,但現在很常見。

更新 - 方法的代碼來調用瀏覽器,同時打開一個URL中傳遞:

def startChrome(url): 
    """ Calls Chrome, opening the URL contained in the url parameter. """ 
    executable = 'path-to-chrome' # Change to fit your system 
    cmd = ' '.join([executable, url]) 
    browswer_proc = subprocess.Popen(cmd, shell=True) 
+0

感謝提示,正如我上面所說,我沒有想過這樣做。 – 2010-01-23 08:57:44

相關問題