ปัญหามีอยู่ว่า
ไม่สามารถทำการเขียน code เพื่อทำ UI Testing
สำหรับ UISlider ที่มีการแก้ไขรูปแบบการแสดงผลได้
สิ่งที่เจอคือ ทำการหมุน UISlider จากแนวนอนไปเป็นแนวตั้ง
ทำให้รูปแบบของการหา element และการจัดการที่ต่างออกไป !!
วิธีการแก้ไข
โดย UISlider แบบปกตินั้น
สามารถสั่งให้เลื่อนค่าใน UISlider ได้ผ่าน method adjust() ดังนี้
app.sliders["id"].adjust(toNormalizedSliderPosition: 0.05)
แต่เมื่อเจอของจริง ๆ มันไม่ได้
เนื่องจากทำการหมุนไปทิศทางอื่น ๆ
ดังนั้น จึงเริ่มทำความเข้าใจกับการทำงานของ method adjust() ก่อน
ด้วยการเขียน extension ดังนี้
เรียกใช้งานแบบนี้ ซึ่งทำงานได้เหมือนกัน
แสดงว่าน่าจะเดินมาในทางที่น่าจะถูก !!
app.sliders["id"].adjustX(toNormalizedSliderValue: 0.05)
จากนั้นก็เริ่มไปทดสอบกับ UISlider ในรูปแบบอื่น ๆ
ทั้งการหมุนมุมต่าง ๆ เช่น
- 90 องศาทั้งบวกและลบ
- 180 องศา
แสดงค่าเริ่มต้นดังรูป
จากการศึกษาและทดลองของการหมุนในแต่ละรูปแบบ
ก็มีการคำนวณที่แตกต่างกัน
ทั้งแกนที่ใช้งานคือ แกม x และแกน y
รวมทั้งจุดเริ่มต้นของ Thumb ว่าอยู่ตรงไหนอีกด้วย
และจุดที่ต้องการให้เลื่อนไป
โดยค่า default มีค่าตั้งแต่ 0 ถึง 1
โดยอีก 3 แบบสามารถเขียน code เพื่อควบคุม UISlider ได้ตามความต้องการ
ซึ่งใส่จากซ้ายไปขวา และ บนลงล่างดังนี้
ตัวอย่างของ source code อยู่ที่ Github :: Up1
ขอให้สนุกกับการ coding ครับ
Reference Websites
http://masilotti.com/ui-testing-cheat-sheet/