2011-11-28 12 views
5

के भीतर टेक्स्ट मानों के लिए काम नहीं कर रहा है मैंने स्टोरीबोर्ड का उपयोग करके एक साधारण प्रोजेक्ट बनाया है जिसमें केवल एक UIDatePicker मोड = दिनांक (ताकि दिनांक "नवंबर" "28" "2011" जैसा दिखाई दे)।UIAPickerWheel.selectValue() UIDatePicker

इंस्ट्रूमेंट्स यूआई ऑटोमेशन के भीतर मैं व्यक्तिगत दिनांक पिकर पहियों के मूल्य निर्धारित करने की कोशिश कर रहा हूं।

मैं पहियों को सेट करने के लिए selectValue() विधि का सफलतापूर्वक उपयोग कर सकता हूं जिसमें संख्यात्मक मान होते हैं लेकिन महीने के टेक्स्ट मान को सेट करने में सक्षम नहीं हो सकते हैं। "नवंबर"। Script threw an uncaught JavaScript error: - selectValue is not supported on a picker with undefined values

मैं एक UIATarget.localTarget().frontMostApp().logElementTree() किया है और देख सकते हैं मूल्य है:

यह काम करता है ..

target.frontMostApp().mainWindow().pickers()[0].wheels()[1].selectValue(12); 

लेकिन यह नहीं है ..

target.frontMostApp().mainWindow().pickers()[0].wheels()[0].selectValue("November"); 

मैं त्रुटि मिलती है सही:

UIAPickerWheel: मूल्य: नवंबर आयत: {{1, 142}, {146, 216}}

कृपया कोई भी सलाह दे सकता है कि मैं क्या गलत कर रहा हूं, बहुत धन्यवाद।

+0

क्या आपने यहां कोई प्रगति की है? – Jules

+0

क्षमा करें नहीं मैंने नहीं किया :-( – MandyW

उत्तर

0

मैं तब तक टैप करूंगा जब तक मेरा मूल्य वह नहीं है जिसे मैं चाहता हूं। चूंकि मान सेट 12 महीने है, यह चारों ओर घूम जाएगा।

while(target.frontMostApp().mainWindow().pickers()[0].wheels()[0].value != "November"){ 
    target.frontMostApp().mainWindow().pickers()[0].wheels()[0].tap(); 
} 
+0

हाय अच्छा विचार है लेकिन यह काम नहीं करता है - जब मैं इसे आज़माता हूं तो मैं बस एक अनंत लूप में फंस जाता हूं और पहिया चालू नहीं होता है :-( – MandyW

+0

जबकि (monthWheel.value ! = "जून") { monthWheel.tapWithOptions ({tapOffset: {x: 0.5, वाई: 0.33}}); monthWheel.logElementTree(); target.delay (0.5); } हालांकि monthWheel.value अब भी है वैध परिणाम नहीं लौटा रहा है – FishStix

2
while(monthWheel.value() != "June"){ 
    monthWheel.tapWithOptions({tapOffset:{x:0.5, y:0.33}}); 
    target.delay(0.5); 
} 

मूल्य यह एक समारोह है तो आप महीने पहिया पर value() बुलाना चाहिए जैसे मैं इस्तेमाल किया, चर नहीं है। और tapWithOptions() आपको पहिया में अगली पंक्ति में ले जाएगा।

4

यह xcode के नवीनतम संस्करण में उपचार किया जा चुका है (4.5.2)

target.frontMostApp().mainWindow().pickers()[0].wheels()[0].selectValue("November"); 

अब

0

काम करेगा बस का उपयोग कर विशेष पिकर पहिया के सभी मूल्यों को खोजने

var pickerWheel1Values = picker.wheels()[1]. values(); 

और यदि आप नवंबर को सेट करना चाहते हैं तो बस

picker.wheels()[index]. selectValue (pickerWheel1Values[10]); 
0

का उपयोग कर Appium चर्चा बोर्ड पर यहाँ यह पृष्ठ देखें किसी के लिए: https://groups.google.com/d/msg/appium-discuss/uYdRTdQDvpU/2I7KSFHnqFwJ

प्रवाह इस प्रकार है:

  • अपने पिकर तत्व (टैग नाम: पिकर) प्राप्त
  • सभी पहियों मिल उस पिकर के लिए (टैग का नाम: पिकरव्हील)
  • आप तत्व कर कर उस व्हील के मानों को सूचीबद्ध कर सकते हैं .getAttribute ("values")
  • आप तत्व कर कर मूल्य निर्धारित कर सकते हैं।setValue (myNewValue)

अंतिम चरण गलत है और आप SendKeys (उपयोग करने की आवश्यकता) setValue (के बजाय)

की तरह मैं इसे कैसे इस्तेमाल किया इस

String pickerWheelLocation = "UIATarget.localTarget().frontMostApp().windows()[3].pickers()[0].elements()[0]" 
By pickerWheelBy = MobileBy.IosUIAutomation(pickerWheelLocation) 
IOSElement pickerWheel = WebDriverHelper.getDriver().findElement(pickerWheelBy); 
pickerWheel.sendKeys("New Value"); 

IOSElement doneButton = WebDriverHelper.getDriver().findElement(MobileBy.IosUIAutomation("UIATarget.localTarget().frontMostApp().windows()[2].toolbars()[0].buttons()["Done"]")); 
    doneButton.click(); 
की तरह कुछ होगा एक वास्तविक उदाहरण के लिए
संबंधित मुद्दे