Xcode UITest - ไม่พบปุ่มในเซลล์ที่มีคู่ค่าคีย์

ฉันประสบปัญหาในการหาวิธีระบุชุดของปุ่ม (ช่องทำเครื่องหมายแบบกำหนดเอง) ที่มีอยู่ภายในเซลล์โดยไม่ซ้ำกัน เซลล์ประกอบด้วยข้อมูลในชุดของคู่ค่าคีย์ โดยมีปุ่มช่องทำเครื่องหมายเชื่อมโยงกับคู่ค่าคีย์แต่ละคู่ ปัญหาคือเซลล์มีค่าสำหรับคู่ค่าคีย์ทั้งหมด ดังนั้นฉันจึงดูเหมือนจะไม่พบปุ่มเพียงปุ่มเดียว เนื่องจากปุ่มทั้งสองเหมือนกันทั้งหมด

เนื่องจากโค้ด UITest กำลังแยกวิเคราะห์ข้อมูลที่ควรจะแสดงในแอปพลิเคชัน ฉันกำลังตรวจสอบประเภทแบบกำหนดเองที่เกี่ยวข้องกับคู่ค่าคีย์ หากเป็น .CheckboxInput จะแสดงโค้ดด้านล่าง:

else if case KeyValueType.CheckboxInput = currentType {
    let currentCheckboxInput = currentKeyQuery.buttons["step unchecked"]
    currentCheckboxInput.tap()
    XCTAssert(currentKeyQuery.buttons["step checked"].exists)
}

สำหรับการอ้างอิง currentKeyQuery จะเข้าสู่เซลล์และค้นหาข้อความที่ตรงกับคีย์ของคู่ค่าคีย์ ฉันไม่สามารถแตะปุ่มช่องทำเครื่องหมายได้เนื่องจากกำลังค้นหาปุ่มทั้งหมดที่มีอยู่ในเซลล์ ไม่ใช่แค่ปุ่มที่เกี่ยวข้องกับคู่ค่าคีย์ปัจจุบันที่กำลังทดสอบ มีวิธีใดที่จะเชื่อมโยงปุ่มกับคู่ค่าคีย์ปัจจุบันเท่านั้นเนื่องจากช่องทำเครื่องหมายทั้งหมดอยู่ในเซลล์เดียวกัน


person droff75    schedule 25.02.2016    source แหล่งที่มา
comment
ฉันไม่เข้าใจ: คุณมีคู่คีย์-ค่า มันเหมือนกับ SomeFlag-true เหรอ? เช่น. คุณสามารถตั้งค่าคีย์เป็น accessibilityIdentifier (หากไม่ซ้ำกัน) และค่าเป็น accessibilityValue หลังจากนั้นคุณสามารถค้นหาตามค่าและแตะตามตัวระบุ   -  person Che    schedule 26.02.2016
comment
@Che คู่คีย์-ค่าเป็นเพียงวิธีการแสดงข้อมูลที่เกี่ยวข้องกันในเซลล์เดียว โค้ดที่ให้ข้อมูลสำหรับเซลล์มีลักษณะดังนี้: KeyValueGroup(keyValues: [KeyValue(key: "key1", value: "value1", type: .CheckboxInput(checkboxTitle: "Title1") โดยพื้นฐานแล้วจะมีชุดของคู่คีย์-ค่าในกลุ่มคีย์-ค่าเดียวที่จะแสดงในเซลล์เดียว หากเป็นประเภท .CheckboxInput ก็จะแสดงปุ่มช่องทำเครื่องหมายและแสดงชื่อที่เกี่ยวข้อง เนื่องจากสิ่งเหล่านี้ล้วนอยู่ในเซลล์เดียวกัน ฉันจึงไม่สามารถแยกแยะระหว่างพวกมันได้   -  person droff75    schedule 26.02.2016


คำตอบ (1)


จริงๆ แล้วฉันสามารถเข้าใจสิ่งนี้ได้ แม้ว่าฉันจะอธิบายไม่ได้จริงๆ ว่าทำไมมันถึงใช้งานได้ ฉันเปลี่ยน currentCheckboxInput เป็น currentKeyQuery.childrenMatchingType(.Button).matchingIdentifier("step unchecked").elementBoundByIndex(0)

person droff75    schedule 26.02.2016