2013-08-26 28 views
5

Benim için firefox'u başlatacak, google'ı yeni bir sekmede açacak ve bir arama yapabilecek bir komut dosyası yazmaya çalışıyorum (örneğin, www.espn.com) . Şu anda bunu webbrowser modülünü kullanarak gerçekleştirmeye çalışıyorum, ancak her defasında Script'i script'ten başlatmayı denediğimde bir hatayla karşılaşıyorum. Ayrıca, firefox varsayılan tarayıcım değil.Python ile Firefox'u başlatın 3.x

import webbrowser 
webbrowser.get('firefox').open_new_tab('http://www.google.com') 

bu yayınladığınızda aşağıdaki hatayı alıyorum:

Traceback (most recent call last): 
    File "C:/Python33/test Bing.py", line 6, in <module> 
    webbrowser.get('firefox').open_new_tab('http://www.google.com') 
    File "C:\Python33\lib\webbrowser.py", line 53, in get 
    raise Error("could not locate runnable browser") 
webbrowser.Error: could not locate runnable browser 

Senaryonun 'firefox' fiili konumu içinde ben de belirterek denedi firefox.exe bulmak için mücadele neden emin değilim c: firefox.exe ancak yine de aynı hatayı alıyorum.

Şu anda göremediğim kodumda küçük bir hata olduğuna eminim, birileri yanlış yaptığım şeyi işaret ederse yardımcı olabilirim!

+0

http://stackoverflow.com/a/4520261/594589 – dm03514

+0

Bu güzel bir sorun giderme adımı olsa da, aslında Firefox'u veya webbrowser'da kullanılmak üzere belirli bir tarayıcıyı kaydettirmeyecektir. – SimonT

+0

hangi işletim sistemini kullanıyorsunuz? –

cevap

6

Windows makinemde de Firefox yüklü var ve aynı hatayı aldım.

Eğer IDLE aşağıdaki iki satırı çalıştırırsanız: source code söylediği gibi

import webbrowser 
print webbrowser._browsers # or print(webbrowser._browsers) for Python 3.x 

Sonra, mevcut tarayıcı denetleyicilerin bir dict alırsınız. Benim sistemde o yazdırır:

{'windows-default': [<class 'webbrowser.WindowsDefault'>, None], 
    'c:\\program files\\internet explorer\\iexplore.exe': [None, <webbrowser.BackgroundBrowser object at 0x01BAF6B0>] 
} 

Ben bu bilgisayarda IE, Chrome ve Firefox var ve burada verilmiştir yalnızca "Varsayılan" ve "Internet Explorer" gibi görünüyor belirterek değer olduğunu düşünüyorum. the documentation'a göre, 'firefox' ve 'mozilla' tuşları çalışmalıdır, ancak tabi ki değil.

Python sadece bir tarayıcı kaydedecektir gibi kendisine tekabül eğer görünüyor, 563 numaralı hat 539 yılında, geri source code gitmek (kodlanmış) tuşuna (örn 'firefox' veya 'chrome') hattı 121 den _iscommand(cmd) kullanarak bir komut (kabul edilir .

Ben BOŞTA kapalı ve %path% için Firefox yolunu eklendi ve RÖLANTİ yeniden başlattıktan sonra, _iscommand('firefox') döner True ve webbrowser.get('firefox) bir <webbrowser.BackgroundBrowser object at 0x01BDF7F0> döndüren bulundu. Ancak, webbrowser._iscommand("chrome") hala False ve webbrowser.get("chrome") hala yukarıda belirtilen istisna atar döner.

Sonucum, webbrowser modülünün %path% (en azından Windows'ta) güvenmediği sürece, Firefox yolunu ilk olarak %path% değişkenine eklemeniz veya Firefox'un varsayılan tarayıcı olduğu varsayımını yapmanız gerekir. .

+0

Aslında mevcut tarayıcıların bir listesini almak için yaptığınız aynı şeyi çalıştırdım ve sadece IE için aldım.Birkaç yıl içinde pythonda kodlanmadım, bu yüzden firefox yolunu nereye ekleyebileceğime dair biraz emin değilim. – Valrok

+1

'% path%' değişkeni yalnızca Python için değil, tüm Sistem içindir. Http://www.computerhope.com/issues/ch000549.htm adresinde bir rehber bulabilirsiniz. – SimonT

2

Firefox yürütülebilir dosyasının yolda olduğundan emin olun (Windows üzerinde %PATH%, Linux'ta $PATH).

İlgili konular