จากคราวที่แล้วเรามีใช้งาน NSP locator ไปแล้ว แต่จะเห็นจากตัวอย่าง NSP ไม่เก่งในเรื่องการหา locator แบบเป็น Hierarchy หรือแบบเดียวกับ XPath ซึ่ง iOS ก็มีทางออกที่สองให้คือใช้ Chain locator แทน โดยเจ้า Chain ยังไม่มี Document บน Appium Document ของ Robot Framework ครับ แต่ถ้าเราลองคุ้ยๆดูจะเห็นว่า Appium library 1.5 ของ Robot มีเจ้า locator นี้ติดมาแล้วครับ

File Robot Framework Appium Element Finder

 

มาดู Chain Syntax กันครับ

  1. Indirect Search และ Element name
    Indirect Search เราจะใช้สัญลักษณ์ **/ เพื่อระบุว่าหาจากชั้นไหนก็ได้ที่มี Element ที่ต้องการ
    การค้นหาจาก ชื่อ Element โดยจะหา Element ทั้งหมดที่ชื่อ XCUIElementTypeButton
  2. Index
    สามารถเลือก Element จาก index ได้โดยใช้สัญลักษณ์ [n] ครับ โดย n เริ่มนับจาก 1 เหมือน XPath ครับ และถ้าอยากหาตัวสุดท้ายสามารถใช้ [-1] ได้เลย
  3. Attribute
    Attribute ก็เป็นเครื่องมือที่ช่วยให้การค้นหาระบุชี้ชัดได้มากขึ้น ทำให้เราบีบการค้นหาให้แคบลงอีก จากตัวอย่างจะเป็นการค้นหา ปุ่ม ซึ่งมีชื่อว่า btnLogin

    นอกจากนี้เรายังสามารถใส่ condition อื่นๆได้อีกเช่น

    1. Contain
    2. Or condition
    3. And condition
  4. Direct Child Search
    จะเป็นการหาแบบเป็นขั้นต่อๆกันครับ เช่น

มี Syntax อื่นๆ อีกเพียบลองดู References จาก link ด้านล่างครับ

https://github.com/facebookarchive/WebDriverAgent/wiki/Class-Chain-Queries-Construction-Rules