2012-01-18 5 views
18

मेरे पास एक आईफोन ऐप है जिसे मैं यूआई ऑटोमेशन का उपयोग कर परीक्षण कर रहा हूं।यूआई ऑटोमेशन का उपयोग करते हुए UITableViewCell में UIButton को टैप करने का प्रयास "टैप नहीं किया जा सका"

मेरे पास UITableViewCell में एक बटन है लेकिन जब मैं UI ऑटोमेशन का उपयोग करके उस पर टैप करने का प्रयास करता हूं तो मुझे निम्न त्रुटि मिलती है।

Script threw an uncaught JavaScript error: target.frontMostApp().mainWindow().scrollViews()[0].elements()[element_name].tableViews()[0].elements().firstWithPredicate(name contains[c] 'Brooklyn').elements()["detailsButton"] could not be tapped 

मैं इंटरफ़ेस बिल्डर में बटन पर पहुंच सक्षम और पहुंच लेबल (और पहचानकर्ता) "detailsButton" सौंपा है। मैं बटन तत्व पुनर्प्राप्त कर सकता हूं और सत्यापित किया है कि यह मान्य है। मैं इसे किसी कारण से टैप नहीं कर सकता।

UIATableCell Brooklyn

UIButton सक्षम उपयोगकर्ता संपर्क के साथ एक दौर आयताकार बटन है। किसी भी प्रतिक्रिया के लिए धन्यवाद।

+0

क्या आपने target.delay (3) जैसी देरी सेट करने का प्रयास किया है; बटन टैप करने से पहले? –

+2

आपके कोड को पोस्ट करने के बारे में, त्रुटि संदेश को जस्ट नहीं करें। –

+0

मुझे लगता है कि टेबलव्यूसेल में बटन को जोड़ने के संबंध में यह एक मुद्दा है - बेहतर प्रतिक्रिया के लिए कोड पोस्ट करें –

उत्तर

1

आप गोल संदर्भ बटन को छोड़कर UIButton आवंटित कर सकते हैं। और आप अपने कंट्रोलर क्लास में बटन की लक्ष्य क्रिया भी सेट कर सकते हैं जहां टेबल व्यू प्रतिनिधि विधियां प्रस्तुत की जाती हैं।

0
but=[UIButton buttonWithType:UIButtonTypeCustom]; 

उपयोग करने के लिए आपको कस्टम बटन प्रकार का उपयोग करना चाहिए।

+2

आपको शायद कोड की एक पंक्ति पोस्ट करने से कुछ और समझाना चाहिए। – Heskja

0

मुझे नहीं पता कि आप यूआई ऑटोमेशन का उपयोग क्यों कर रहे हैं। लेकिन मुझे तालिकादृश्य में UIButton जोड़ने के बारे में पता है-

1) बस UITableViewCell में UIButton जोड़ें।
2) UIButton's टैग मान सेट करें और उस बटन पर लक्ष्य जोड़ें।
3) लक्ष्य बटन विधि में, आप UIButton वस्तु प्राप्त कर सकते हैं और वहाँ पर अपना सामान करना ..

आशा इस तुम बाहर में मदद करता है।

1

बटन मौजूद होने पर पहले जोर देने का प्रयास करें, आसान प्रविष्टियों के लिए tuneup_js का उपयोग करें। फिर जोर दें कि बटन सक्षम है या नहीं।

क्या आपने कोशिश की है: target.frontMostApp().mainWindow().scrollViews()[0].elements()[element_name].tableViews()[0].**cells()**.firstWithPredicate("name contains[c] 'Brooklyn'").elements()["detailsButton"]?

यह भी एक और तस्वीर पोस्ट करें जो UIATableCell को विस्तारित करता है जहां विवरण बटन मौजूद है।

-1

क्या आपने यह कोशिश की है?

target.frontMostApp().mainWindow().scrollViews()[0].tableViews()[0].elements().firstWithPredicate(name contains[c] 'Brooklyn').buttons()["detailsButton"].tap() 
0

मुझे एक ही समस्या है। देरी जोड़ने के बाद यह काम करता है।

UIATarget.localTarget().delay(1); 
0

आप पूरे खिड़की पर एक नल घटना प्रेषण कर सकते हैं:

function tap_from_window(elem) { 
    var mainWindow = target.frontMostApp().mainWindow(); 
    var elemRect = elem.rect(); 
    var windowRect = mainWindow.rect(); 

    var xPos = (20 + elemRect.origin.x)/windowRect.size.width; 
    var yPos = (50 + elemRect.origin.y)/windowRect.size.height; 

    mainWindow.tapWithOptions({tapOffset:{x:xPos, y:yPos}});  
} 

var target = UIATarget.localTarget(); 
var window = target.frontMostApp().mainWindow(); 
var tableView = window.scrollViews()[0].elements()[element_name].tableViews()[0]; 
tap_from_window(tableView.elements().firstWithPredicate(name contains[c] 'Brooklyn')) 

कई आईओएस से संबंधित चीजों की तरह, मुझे पता नहीं क्यों तत्व सीधे उपयोग किया नहीं किया जा सकता है। मैंने उपरोक्त फ़ंक्शन को इस पोस्ट में कोड से अनुकूलित किया: scrollToVisible error while testing on a device, UIAutomation

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