2013-08-26 13 views
5

के साथ फ़ायरफ़ॉक्स लॉन्च करें मैं एक स्क्रिप्ट लिखने की कोशिश कर रहा हूं जो मेरे लिए फ़ायरफ़ॉक्स लॉन्च करेगी, एक नए टैब में Google खोलें, और एक खोज करने में सक्षम हो (उदाहरण के लिए, www.espn.com) । मैं वर्तमान में वेबब्रोसर मॉड्यूल का उपयोग कर इसे प्राप्त करने की कोशिश कर रहा हूं, हालांकि जब भी मैं स्क्रिप्ट से फ़ायरफ़ॉक्स लॉन्च करने का प्रयास करता हूं तो मैं एक त्रुटि में चला जाता हूं। इसके अलावा, फ़ायरफ़ॉक्स मेरा डिफ़ॉल्ट ब्राउज़र नहीं है।पाइथन 3.x

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

जब भी मैं इस चलाने मैं निम्नलिखित त्रुटि मिलती है:

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 

मैं अनिश्चित क्यों स्क्रिप्ट 'firefox' के वास्तविक स्थान में firefox.exe मैं भी निर्दिष्ट करने की कोशिश की है पता लगाने के लिए संघर्ष कर रहा है c में firefox.exe: हालांकि मुझे अभी भी वही त्रुटि मिलती है।

मुझे यकीन है कि मेरे कोड में एक छोटी सी त्रुटि है जिसे मैं वर्तमान में नहीं देख सकता, अगर कोई यह बता सकता है कि मैं क्या गलत कर रहा हूं तो मैं इसकी सराहना करता हूं!

+0

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

+0

हालांकि यह एक अच्छा समस्या निवारण चरण है, लेकिन यह वास्तव में फ़ायरफ़ॉक्स या किसी वेब ब्राउज़र को 'वेबब्रोसर' में उपयोग के लिए पंजीकृत नहीं करेगा। – SimonT

+0

आप किस ऑपरेटिंग सिस्टम का उपयोग कर रहे हैं। –

उत्तर

6

मेरे पास फ़ायरफ़ॉक्स भी मेरी विंडोज मशीन पर स्थापित है, और एक ही त्रुटि है।

आप निष्क्रिय में निम्नांकित दो पंक्तियों को चलाते हैं:

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

तो फिर तुम उपलब्ध ब्राउज़र नियंत्रकों के एक dict मिल जाएगा, के रूप में source code में कहा। अपने सिस्टम पर यह प्रिंट:

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

मुझे लगता है कि यह ध्यान देने योग्य है कि मैं इस कंप्यूटर पर आईई, क्रोम और फ़ायरफ़ॉक्स है और यह केवल "डिफ़ॉल्ट" और "इंटरनेट एक्सप्लोरर" यहां दिए गए हैं की तरह लग रहा लायक है। the documentation के अनुसार, 'firefox' और 'mozilla' कुंजी को काम करना चाहिए, लेकिन निश्चित रूप से वे नहीं करते हैं।

वापस source code के लिए जा रहे 563 करने के लिए लाइन 539 में, जैसे अजगर केवल एक ब्राउज़र में दर्ज किए जाएंगे यह लग रहा है उससे संबंधित अगर (हार्ड-कोडेड) कुंजी ('firefox' जैसे या 'chrome') एक कमांड (लाइन 121 से _iscommand(cmd) का उपयोग कर माना जाता है ।

मैं निष्क्रिय बंद कर दिया और %path% करने के लिए Firefox पथ जोड़ा गया है और पाया कि निष्क्रिय पुनरारंभ करने के बाद, _iscommand('firefox') रिटर्न True और webbrowser.get('firefox) रिटर्न एक <webbrowser.BackgroundBrowser object at 0x01BDF7F0>। हालांकि, webbrowser._iscommand("chrome") अभी भी रिटर्न False और webbrowser.get("chrome") अभी भी ऊपर उल्लिखित अपवाद फेंकता है।

मेरा निष्कर्ष यह है कि जब तक webbrowser मॉड्यूल %path% (कम से कम विंडोज़ पर) पर भरोसा नहीं करता है, तो आपको पहले %path% चर पर फ़ायरफ़ॉक्स पथ जोड़ना होगा, या धारणा है कि फ़ायरफ़ॉक्स डिफ़ॉल्ट ब्राउज़र है ।

+0

मैं वास्तव में वही काम चलाता हूं जो आपने उपलब्ध ब्राउज़र की सूची प्राप्त करने के लिए किया था और केवल आईई के लिए भी मिला था।मैंने कई सालों में अजगर में कोड नहीं किया है, इसलिए मुझे थोड़ा यकीन नहीं है कि मैं फ़ायरफ़ॉक्स पथ कहां जोड़ सकता हूं। – Valrok

+1

'% पथ%' चर पूरी प्रणाली के लिए है, सिर्फ पायथन के लिए नहीं। आप http://www.computerhope.com/issues/ch000549.htm पर एक गाइड पा सकते हैं। – SimonT

2

सुनिश्चित करें कि फ़ायरफ़ॉक्स निष्पादन योग्य पथ पर है (%PATH% विंडोज़ पर, $PATH लिनक्स पर)।