2012-12-18 21 views
5

के माध्यम से "_APPNAME_ आपके वर्तमान स्थान का उपयोग करना चाहते हैं" के साथ कैसे निपटें, ठीक है, यह मुझे पागल कर रहा है। मुझे थोड़ा सीआई-बिल्ड सिस्टम चल रहा है। और मैं यूआईयूटोमेशन के साथ अपने आवेदन के यूआई परीक्षण कर रहा हूं। चूंकि एप्लिकेशन कोरलोकेशन का उपयोग करता है, पहली बार एप्लिकेशन लॉन्च होने पर मुझे थोड़ा सा अलर्ट मिलता है कि मैं यह पुष्टि करने के लिए कहूं कि मैं अपना स्थान ट्रैक करना चाहता हूं। यह बहुत अच्छा होगा और सब कुछ होगा, लेकिन अलर्ट मेरे अपने आवेदन का हिस्सा नहीं है और मैं इसके साथ इंटरफेस करने के लिए यूआईयूटोमेशन का उपयोग नहीं कर सकता। बटन के मैन्युअल टैपिंग के बिना इस चेतावनी की पुष्टि करने का कोई समाधान है।UIAutomation

धन्यवाद।

पीएस परीक्षण निर्माण के लिए कोरलोकेशन से छुटकारा पाने का विकल्प नहीं है।

उत्तर

2

एक ही रास्ता है कि मैं इस के आसपास पिछले जगह मैं काम पर मिल गया है कि आप के लिए अलर्ट को खारिज कर सकते हैं एक छोटे से सेब स्क्रिप्ट एप्लिकेशन लिखने के लिए किया गया था।

आपको आईओएस सिम्युलेटर पर अलर्ट को खारिज करने के लिए कुछ सरल यूआई स्क्रिप्टिंग करने में सक्षम होना चाहिए।

स्पष्ट रूप से मैं सिम्युलेटर पर चल रहा हूं और आपके परीक्षणों के लिए डिवाइस नहीं मान रहा हूं।

कैसे iPhone सिम्युलेटर

  1. सिस्टम प्राथमिकताएं में पहुँच क्षमता अप खोलने के लिए सेब स्क्रिप्ट के माध्यम से स्थान अलर्ट को खारिज करने के लिए। नीचे बाएं कोने में आप विकल्प के बाद आप अनुप्रयोग सिम्युलेटर में शुरू किया है और चेतावनी प्रदर्शित किया जाता है चलाने के लिए सहायक उपकरणों

एप्पल स्क्रिप्ट के लिए पहुँच सक्षम करें चेक ताकि आप कुछ करने के बाद इस चलाने की आवश्यकता होगी यह सुनिश्चित कर लें देरी।

tell application "iPhone Simulator" 
    activate 
end tell 

tell application "System Events" 
    tell process "iPhone Simulator" 
     click button "OK" of window 1 
    end tell 
end tell 
+0

आपका धारणा सही है, लेकिन मैं अभी भी कुछ पर एक वास्तविक डिवाइस पर अपना परीक्षण पर अमल करने की क्षमता है चाहते हैं में applescript स्क्रिप्ट एम्बेड करता है पहर।लेकिन किसी भी तरह से आप मुझे इस यूई स्क्रिप्ट का एक उदाहरण दे सकते हैं? – carlossless

+0

मुझे बताएं कि क्या सेब स्क्रिप्ट आपके लिए काम करती है, मैंने इसे अपने आईफोन सिम्युलेटर पर करने की कोशिश की और इसे बिना किसी समस्या के अलर्ट को खारिज कर दिया। – Shaun

1

इस चेतावनी से बातचीत करना वास्तव में संभव है। सभी अलर्ट तब तक दिखाई देने, जबकि आपके एप्लिकेशन चल रहा है आप इसे गति प्रदान करने से पहले एक onAlert हैंडलर बताए द्वारा संभाला जा सकता है।

सवाल आपसे पूछा के आधार पर यह लगता है कि आप एप्लिकेशन लॉन्च पर तुरंत CLLocationManager ऊपर फायरिंग कर रहे हैं। यदि संभव हो, तो इसे आधे सेकेंड तक देरी करने का प्रयास करें। फिर, अपने यूआई स्वचालन स्क्रिप्ट में, आप तुरंतसही शुरुआत में एक चेतावनी हैंडलर असाइन कर सकते हैं। कुछ इस तरह:

UIATarget.onAlert = function(alert) { 
    alert.defaultButton().tap(); 
    return true; 
}; 

कि चेतावनी डिफ़ॉल्ट (पुष्टि) बटन दोहन करने के लिए कहता है और return true चेतावनी हैंडलिंग तंत्र कि हम इसे संभाला बताता है। यदि आप झूठी लौट आए हैं, तो सिस्टम को लगता है कि इसे रद्द करें बटन को टैप करने की आवश्यकता है (जो डिफ़ॉल्ट व्यवहार है)।

आशा है कि मदद करता है!

+0

नहीं, अभी भी ऐप को सबसे बड़ी त्रुटियां नहीं मिल रही हैं। मैन्युअल रूप से इसके आसपास घूमने की कोशिश कर उपकरणों के भीतर यादृच्छिक दुर्घटनाओं का कारण बनता है। – carlossless

0

ऊपर समाधान है कि ककड़ी स्क्रिप्ट

Given /^I am on the GPS permission screen$/ do 
IO.popen("osascript", "w") do |f| 
# applescript to OK sharing of Current Location 
f.puts <<-eos 
    tell application "iPhone Simulator" 
     activate 
    end tell 

    tell application "System Events" 
     tell process "iPhone Simulator" 
      repeat 
       try 
        click button "OK" of window 1 
        exit repeat 
       end try 
      end repeat 
     end tell 
    end tell 
eos 

अंत अंत