2012-01-05 10 views
6

मैं अपने एप्लिकेशन में एक खोज क्षेत्र है और मैं UIReturnKeyNext को इस क्षेत्र के लिए कीबोर्ड की वापसी कुंजी प्रकार निर्धारित किया है। क्योंकि नाम के साथ कुंजी 'अगले' पाया नहीं किया जा रहा हैक्लिक करना कुंजीपटल 'अगला' कुंजी का उपयोग कर UIAutomation

UIATarget.localTarget().frontMostApp().mainWindow().keyboard().keys().firstWithName("next"); 

इस कॉल विफल हो रहा है: मैं एक UIAutomation परीक्षण है कि कीबोर्ड पर अगला बटन क्लिक करता है निम्न पंक्ति का उपयोग कर लिखने के लिए प्रयास कर रहा हूँ। मैं का उपयोग कर मेरे एप्लिकेशन में सभी तत्वों का का एक डंप किया है:

UIATarget.localTarget().frontMostApp().logElementTree(); 

यह वास्तव में नाम के साथ 'अगले' कुंजीपटल में एक महत्वपूर्ण है कि वहाँ का पता चलता है, लेकिन किसी भी तरह मेरी प्रयास अभी भी ऊपर शो के रूप में इसे पुनः प्राप्त करने विफल रहता है। हालांकि मैं इस विधि का उपयोग कर अन्य कुंजियों (जैसे 'यू' के लिए कुंजी) को पुनर्प्राप्त कर सकता हूं। क्या यहां कोई ज्ञात समस्या है या क्या मैं कुछ गलत कर रहा हूं?

UIATarget.localTarget().frontMostApp().mainWindow().keyboard().elements()["next"]; 

यहाँ मेरी UIAKeyboard में तत्वों की एक स्क्रीन पर कब्जा है:

मैं कोई भाग्य के साथ अन्य रूपों की कोशिश की है

return key dump

उत्तर

1

निम्नलिखित काम करता है मेरे लिए कोशिश कर सकते हैं:

UIATarget.localTarget().frontMostApp().mainWindow().keyboard().buttons().firstWi‌​thPredicate("name contains[c] 'next'"); 
2

मैं dont't के लिए एक उदाहरण है परीक्षण, लेकिन जैसा कि "अगला" बटन एक यूआईए बटन है, और यूआईएकी नहीं है, आप कोशिश कर सकते हैं:

UIATarget.localTarget().frontMostApp().mainWindow().keyboard().buttons()["next"]; 

यह काम नहीं करता, तो आप भी

UIATarget.localTarget().frontMostApp().mainWindow().keyboard().buttons()[4]; 
+0

मैंने दोनों की कोशिश की और कोई भाग्य नहीं था। सुझावों के लिए धन्यवाद। – kodie

+0

जूलियन, आपके उत्तर ने मुझे इसके साथ फिर से खेलने के लिए प्रेरित किया, और बटन() फ़ंक्शन का उपयोग करके एक कार्य समाधान का कारण बन गया। यहां मेरे लिए क्या काम करता है: UIATarget.localTarget()। FrontMostApp()। मुख्यविंडो()। कीबोर्ड()। बटन()। FirstWithPredicate ("नाम में [c] 'अगला'") है; ऐसा लगता है कि बटन() ["अगला"] काम करना चाहिए था और मुझे नहीं पता कि यह क्यों नहीं हुआ, लेकिन उपर्युक्त काम करता है। सुझाव के लिए धन्यवाद। – kodie

2

आप बस इसे क्लिक करें चाहते हैं, और आप कुंजीपटल "अगला" है पता के रूप में "द रिटर्न कुंजी" (अपने निब में परिभाषित), तो आप इस का उपयोग कर सकते हैं:

app.keyboard().typeString("\n"); 
0

मेरे लिए, कुंजीपटल() MainWindow के तहत नहीं आता है दृश्य पदानुक्रम में। यह मेनविंडो() के समान स्तर पर है जब आप शीर्ष स्तर से logElementTree() लॉग करते हैं। तो, आप क्या करना चाहते हैं:

UIATarget.localTarget().frontMostApp().keyboard().buttons()["next"]; 

यह मेरे लिए काम करता था जब मैं कीबोर्ड पर "खोज" बटन दबाए रखने की कोशिश कर रहा था।