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