ระบุชื่อหน้าต่าง Mac OS X, กลุ่มและฟิลด์ข้อความสำหรับใช้ใน AppleScript


8

ฉันมี Applescript ที่ฉันต้องการที่จะกำหนดค่าของเขตข้อมูลข้อความNameและหน้าต่างที่อยู่ในกระบวนการPasswordSecurityAgent

มันคล้ายกับต่อไปนี้:

tell window "Authenticate" of process "SecurityAgent"
    tell group 1
        set value of text field 1 to "king"
        set value of text field 2 to "king1"
    end tell
    click button "OK" of group 2
end tell 

ในขณะที่สคริปต์ของฉันอ้างถึงกระบวนการSecurityAgentหน้าต่างที่เป็นปัญหาก็คือหน้าต่างที่ปรากฏขึ้นเมื่อคุณปิดระบบปฏิบัติการ OS X และผู้ใช้อื่นกำลังเข้าสู่ระบบSecurityAgentหน้าต่างจะปรากฏขึ้นเพื่อขอชื่อผู้ใช้และรหัสผ่านของผู้ดูแลระบบ กระบวนการปิดระบบ ฉันไม่ทราบวิธีการอ้างถึงช่องข้อความในหน้าต่างดังกล่าว

คำถามของฉันคือฉันจะหาชื่อของฟิลด์ข้อความเหล่านี้กลุ่มที่พวกเขาเป็นเจ้าของและหน้าต่างที่พวกเขาอยู่ได้อย่างไร มีวิธีการแมป OS X windows เพื่อให้ฉันสามารถอ้างอิงพวกเขาใน AppleScript หรือไม่ ฉันไม่สามารถหาข้อมูลเกี่ยวกับเรื่องนี้ได้ทุกที่

คำตอบ:


9

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

ช่วยให้คุณมองเข้าไปที่องค์ประกอบ UI ของแต่ละหน้าต่างที่คุณวางเมาส์ การกดCmd- F7ล็อคเนื้อหาเข้ากับองค์ประกอบที่คุณโฮเวอร์

ป้อนคำอธิบายรูปภาพที่นี่

ส่วน "ความสนุก" คือการหาวิธีการจัดกลุ่มหน้าต่างและองค์ประกอบที่เป็นของผู้ปกครอง เบราว์เซอร์ UI ของแอปพลิเคชัน $ 55 อ้างว่าทำงานได้ดีขึ้น

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

UI elements of window 1
UI elements of splitter group 1 of window 1
UI elements of group 1 of splitter group 1 of window 1

สิ่งเหล่านี้จะให้รายการที่คุณสามารถใช้เพื่อ จำกัด การค้นหาองค์ประกอบและชื่อเรื่องที่เกี่ยวข้อง


1
+100 เพื่อแจ้งให้ฉันทราบเกี่ยวกับ UIElementInspector
Nifle

@slhck - ว้าว! ช่างเป็นคำตอบที่วิเศษมาก ได้รับการชื่นชมอย่างมากและฉันจะทำงานทันทีในเรื่องนี้ อย่างไรก็ตามอยากรู้อยากเห็นในขณะที่ฉันใหม่ AppleScript โดยทั่วไป; ฉันจะทำUI elementsคำสั่งได้อย่างไร
stefmikhail

1
@Stef UI Elements of window "Authenticate" of process ...กันตัวอย่างเช่น เพียงแค่ทำสิ่งนี้ในตัวแก้ไข AppleScript และดูผลลัพธ์ที่ด้านล่าง แต่น่าเสียดายที่ฉันยังไม่พบวิธีที่มีประสิทธิภาพมากขึ้นในการทำเช่นนี้
slhck

@slhck - ไม่ไม่ฟังดูสมบูรณ์แบบ และจบลงด้วยเบราว์เซอร์ UI เสนอการทดลองใช้คุณสมบัติหนึ่งเดือนเต็มดังนั้นฉันจะสามารถให้มันได้เช่นกัน อีกครั้งขอบคุณมัด
stefmikhail

@stefmikhail แน่นอนว่าไม่มีปัญหา! แจ้งให้เราทราบว่า UI Browser ทำงานให้คุณอย่างไรยังไม่มีเวลาทดลองใช้!
slhck
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.