2012-04-02 15 views
5

0 मैक पर सफारी 5 के लिए सेलेनियम परीक्षण स्थापित कर रहा है। मुझे हाथ से पहले हमारे सफारी एक्सटेंशन को स्थापित करने की ज़रूरत है, और इसे चुपचाप और किसी भी उपयोगकर्ता को संकेत देने की आवश्यकता है। पिछले पोस्ट से, मैंने पाया इस में काम करता है कि यह विस्तार के साथ ब्राउज़र को लोड करता है:मैक पर सफारी एक्सटेंशन के लिए मूक इंस्टॉल

खुला -एक okta.safariextz

सफारी लेकिन यह पत्ते ब्राउज़र उपयोगकर्ता के लिए एक संकेत के साथ खुला: "कर रहे हैं क्या आप वाकई एक्सटेंशन इंस्टॉल करना चाहते हैं? "

सेलेनियम के पास इस प्रॉम्प्ट तक पहुंच नहीं है और इंस्टॉल नहीं कर सकता। मुझे सफारी को कॉन्फ़िगर करने की आवश्यकता है जैसे कि यह उपयोगकर्ता को स्थापित करने के लिए संकेत नहीं देता है, लेकिन एक्सटेंशन को इंस्टॉल करने की अनुमति देता है।

क्या ऐसा करने का कोई तरीका है?

किसी भी पॉइंटर्स की सराहना की।

-Denali

उत्तर

0

मैं नहीं मानता कि वहाँ के रूप में यह एक सुरक्षा छेद होगा स्थापित एक मौन एक्सटेंशन करने के लिए कोई रास्ता नहीं है। आप अपने सेलेनियम परीक्षण चलाने से पहले एक्सटेंशन इंस्टॉल करने के लिए ऐप्पलस्क्रिप्ट को शामिल करने का प्रयास करना चाह सकते हैं। संभावित नई विधि:

How to reload a Safari Extension from the command line?

+0

बहुत बहुत धन्यवाद। मैं इन्हें देख लूंगा। –

2

संपादित करें:

यहाँ सफारी विस्तार reloading के लिए AppleScript जानकारी है कि अपने उद्देश्यों के लिए इस्तेमाल किया जा सकता है के साथ StackOverflow पर एक और सवाल यह है कि जवाब here सुझाव दे सकता है (यह कुछ हद तक है अस्पष्ट) कि, अपने भविष्य के सफारी उन्नयन को गड़बड़ करने के संभावित जोखिम के साथ, आप एक फ़ाइल चाल और एक प्लेस्ट हैक के माध्यम से पुष्टिकरण संकेत को मैन्युअल रूप से एक एक्सटेंशन इंस्टॉल करने में सक्षम हो सकते हैं। मैं इसे करने की कोशिश नहीं की है, लेकिन यह है कि यह काम हो सकता है दिखता है:

तुम सिर्फ घर में तैनाती के लिए यह कर रहे हैं और कोई आपत्ति नहीं है अगर यह एक सफारी उन्नयन पर टूट जाता है, तो आप कर सकते हैं, तो सफारी से बाहर निकलें, ~/लाइब्रेरी/सफारी/एक्सटेंशन में विस्तार स्थापित करें और ~/लाइब्रेरी/सफारी/एक्सटेंशन/एक्सटेंशन.प्लिस्ट अपडेट करें (प्रारूप स्पष्ट है;/usr/libexec/PlistBuddy ऐसी चीजों के लिए उपयोगी है)।

आप कम से कम किसी भी कमांडलाइन स्विच या प्लिस्ट हैक के साथ नहीं कर सकते हैं जो आप जानते हैं। एक्सटेंशन इंस्टॉल पुष्टिकरण सफारी के सुरक्षा मॉडल का मुख्य हिस्सा है, और इसे आसानी से अवरुद्ध नहीं किया जाता है।

इसके बजाए, मैं उपयुक्त बटन पर क्लिक भेजने के लिए ऑटोमेटर (यदि आप इससे परिचित नहीं हैं, तो सेलेनियम सोचें लेकिन डेस्कटॉप ऐप्स के लिए और अधिक) का उपयोग करने पर विचार करें, और उसके बाद सफारी लॉन्च करने वाला एक ऑटोमेटर ऐप वितरित करना उपयुक्त पैरामीटर के साथ, एक्सटेंशन संवाद प्रकट होने पर क्लिक भेजता है, और उसके बाद सेलेनियम-आधारित (ऑटोमेटर-आधारित) ऑटोमेशन के बजाए चला जाता है। शुरू करने के लिए, मैं निम्नलिखित लिंक देखता हूं: "डुप्लो लेगोस" ऑटोमेशन बिल्डर के बजाय सेबस्क्रिप्ट के माध्यम से स्वचालित: http://www.mactech.com/articles/mactech/Vol.21/21.06/UserInterfaceScripting/index.html मैक्रो रिकॉर्डिंग का बहुत संक्षिप्त अवलोकन (आपने रिकॉर्ड मारा है, क्लिक करें जिसे आप चाहते हैं, सहेजें हिट करें, और आप अपने रिकॉर्ड किए गए कार्यों को फिर से निष्पादित कर सकते हैं): http://automator.us/leopard/features/virtual-user.html ऑटोमेटर ट्यूटोरियल के लिए मेरा पसंदीदा परिचय: http://cjrtools.org/mac/tutorials/autohowto.html

+0

धन्यवाद, मैं उनको जांचूंगा।मैं समझता हूं कि यह एक सुरक्षा छेद होगा यदि आप इसे उसी कमांड लाइन प्रोग्राम से नियंत्रित कर सकते हैं जिसका उपयोग आप एक्सटेंशन को इंस्टॉल करने के लिए कर रहे हैं, लेकिन यदि आपके पास ओएस और ब्राउज़र पर नियंत्रण है, तो क्या होगा? ऐसा लगता है कि परीक्षण उद्देश्यों के लिए ब्राउज़र को कॉन्फ़िगर करने का कोई तरीका होना चाहिए। –

+0

अभी भी कोई आसान तरीका नहीं है जिसे मैं जानता हूं। लॉन्च करने, एक्सटेंशन इंस्टॉल करने और एक बार में सेलेनियम परीक्षण चलाने की आवश्यकता एक छोटी सी जगह है, और नहीं, मैं कल्पना करता हूं कि सफारी डेवलपर्स एक महत्वपूर्ण सुरक्षा छेद खोलने के लिए एक सार्थक कारण मानते हैं। –

+0

ओह, एक और तरीका हो सकता है, लेकिन मैंने इसका परीक्षण नहीं किया है। मेरा जवाब संपादित करना; कोशिश करके देखो। –

संबंधित मुद्दे