จากคราวที่แล้วเรามีใช้งาน 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

     

    chain=**/XCUIElementTypeButton
  2. Index
    สามารถเลือก Element จาก index ได้โดยใช้สัญลักษณ์ [n] ครับ โดย n เริ่มนับจาก 1 เหมือน XPath ครับ และถ้าอยากหาตัวสุดท้ายสามารถใช้ [-1] ได้เลย

     

    chain=**/XCUIElementTypeButton[1]
  3. Attribute
    Attribute ก็เป็นเครื่องมือที่ช่วยให้การค้นหาระบุชี้ชัดได้มากขึ้น ทำให้เราบีบการค้นหาให้แคบลงอีก จากตัวอย่างจะเป็นการค้นหา ปุ่ม ซึ่งมีชื่อว่า btnLogin

     

    chain=**/XCUIElementTypeButton[`name == "btnLogin"`]

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

    1. Contain
      [`name CONTAINS "blabla"`]
    2. Or condition
      [`value == "bla1" OR label == "bla2"`]
    3. And condition
      [`value == "bla1" AND label == "bla2"`]
  4. Direct Child Search
    จะเป็นการหาแบบเป็นขั้นต่อๆกันครับ เช่น

     

    chain=XCUIElementTypeWindow/XCUIElementTypeButton[3]

 

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

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

Previous articleTest UI ด้วย Katalon เบื้องต้น
Next articleWork life integration ในเมื่องานแม่งเยอะนัก ก็เอามาเป็นส่วนหนึ่งในการใช้ชีวิตซะเลย

1 COMMENT

  1. […] ในที่สุดก็รองรับการใช้งาน Chain locator ของ iOS แบบ official แล้ว การใช้ Chain locator ได้จะทำให้สามารถรันเทสได้ไว และเสถียรกว่าเดิมนั่นเอง ใครยังไม่เคยลองใช้สามารถตามจาก blog นี้ได้เลย Chain locator สำหรับ iOS ที่ใช้งานแบบเดียวกับ XP… […]