2015-09-14 11 views
15

के साथ काम करना मुझे डब्ल्यूडब्ल्यूडीसी 2015 में ऐप्पल ने पेश किए गए एक्सकोड के लिए UITesting फ्रेमवर्क का उपयोग करके एक समस्या का सामना करना पड़ रहा है। मेरे पास एक UITableView है और इस तालिका में बहुत से सेल हैं। इसके अलावा मेरे पास कोशिका खिताब के साथ एक एनएसएआरएआर है - यदि सेल शीर्षक एनएसएआरएआरई में निहित है तो इस सेल को टैप किया जाना चाहिए। मेरी समस्या यह है कि मैं विशेष सेल के लिए तालिका दृश्य स्क्रॉल नहीं कर सकता, क्योंकि ढांचे में तालिका दृश्यों के साथ काम करने के लिए विधि नहीं है, केवल जेश्चर (नीचे, ऊपर) स्वाइप करें।xCode 7, UI-testing: UITableView

शायद कोई जानता है कि मैं तालिका दृश्य में विशेष सेल पर कैसे टैप कर सकता हूं? या मैं विशेष सेल के लिए तालिका दृश्य कैसे स्क्रॉल कर सकता हूं? क्योंकि जब मैं सेल पर tap() विधि को कॉल करता हूं जो स्क्रीन पर दिखाई नहीं दे रहा है - कुछ भी नहीं होता है।

अग्रिम धन्यवाद!

+1

यदि मेरा उत्तर आपकी समस्या का समाधान करता है, तो आप इसे स्वीकार कर सकते हैं, धन्यवाद –

उत्तर

13

यह मेरे लिए काम किया:

XCUIElementQuery *tablesQuery = self.app.tables; 

XCUIElementQuery *cellQuery = [tablesQuery.cells containingType:XCUIElementTypeStaticText 
                identifier:@"Work"]; 

XCUIElementQuery* cell = [cellQuery childrenMatchingType:XCUIElementTypeStaticText]; 

XCUIElement* cellElement = cell.element; 

[cellElement tap]; 

स्क्रॉल तालिका उपयोग के लिए:

XCUIElementQuery *tablesQuery = self.app.tables; 
XCUIElement* table = tablesQuery.element; 
[table swipeUp]; 
+0

के बाद कुछ भी नहीं होता है स्विफ्ट के साथ इसे कैसे प्राप्त किया जाए? – cptdanko

+1

@cptdanko स्विफ्ट समकक्ष के लिए मेरा जवाब देखें। – Santosh

4

मैं हाल ही में एक ही समस्या में आया था। एक विकल्प तुम कोशिश कर सकते तालिका में सेल के लिए किसी विशेष शीर्षक देखने के लिए, और उस पर नल,

उदाहरण के लिए

है: -

XCUIApplication().tables.staticTexts["identifier"].tap() 

या

XCUIApplication().tables.cells.staticTexts["identifier"].tap() 

कहाँ " पहचानकर्ता "उस सेल का शीर्षक है जिसे आप टैप करने का प्रयास कर रहे हैं।

मुझे आशा है कि इस मदद करता है!

+4

उत्तर के लिए धन्यवाद, लेकिन यह काम नहीं करता है, टैप(): –

4
@Eugene Zhenya गोरडीन के जवाब के लिए

स्विफ्ट संस्करण: स्विफ्ट 4 के लिए

let tablesQuery = app.tables 
    let cellQuery = tablesQuery.cells.containing(.staticText, identifier: "MyCell") 
    let cell = cellQuery.children(matching: .staticText) 
    let cellElement = cell.element 
    cellElement.tap() 

    let tableElement = tablesQuery.element 
    tableElement.swipeUp() 
अपडेट किया गया
+0

ये स्विफ्ट 4 – delta2flat

+0

@ delta2flat में संकलित नहीं होंगे अब आज़माएं – Santosh

1

मुझे एक ही सटीक समस्या थी!

सबसे पहले, मैं .staticTexts क्वेरी के माध्यम से, बस सेल के लेबल पर टैप कर रहा था। यहां मेरे लिए काम करने का एक और तरीका है:

cellForRowAtIndexPath में, जहां आप कोशिकाओं को तुरंत चालू करते हैं, उन्हें titleLabel या किसी अन्य प्रॉपर्टी के आधार पर, प्रत्येक को एक अद्वितीय पहचानकर्ता दें।

उदाहरण: (उद्देश्य पर एक छोटी सी वर्बोज़, क्योंकि यह मुझे बेहतर ढंग से समझने में मदद मिली)

XCUIApplication *application = [XCUIApplication new]; 
XCUIElementQuery *tablesQuery = application.tables; 
XCUIElementQuery *allCellsQuery = tablesQuery.cells; 
XCUIElementQuery *specificCellQuery = [cellQuery matchingIdentifier:@"myCellTypeSaffron"]; 
XCUIElement *cell = specificCellQuery.element; 

[cell tap]; 

विशेष सेल का समाधान करता है जब:

cell.accessibilityIdentifier = [NSString stringWithFormat:@"myCellType%@", cell.colorIdentifier]; 

उसके बाद, परीक्षण कक्षा में वापस, इस कोशिश इसके साथ बातचीत की है।

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

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