Xác định tên Mac OS X Window, Group và Text Field để sử dụng trong AppleScript


8

Tôi có một Applescript trong đó tôi muốn đặt giá trị của các trường văn bản NamePasswordcủa một cửa sổ thuộc về quy trình SecurityAgent.

Nó tương tự như sau:

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 

Mặc dù tập lệnh của tôi cũng đang đề cập đến quá trình SecurityAgent, nhưng cửa sổ được đề cập là cửa sổ bật lên khi bạn tắt OS X và một người dùng khác đã đăng nhập. SecurityAgentCửa sổ bật lên hỏi tên người dùng và mật khẩu của quản trị viên để hoàn tất đóng cửa quá trình. Tôi không biết làm thế nào để tham khảo các trường văn bản trong cửa sổ nói.

Câu hỏi của tôi là, làm thế nào để tôi tìm ra tên của các trường văn bản này, nhóm chúng thuộc về và cửa sổ chúng thuộc về? Có một phương pháp ánh xạ các cửa sổ OS X để tôi có thể tham khảo chúng trong AppleScript không? Tôi dường như không thể tìm thấy thông tin liên quan đến điều này ở bất cứ đâu.

Câu trả lời:


9

Tôi đã từng thử nhấp vào một nút trong ứng dụng Chụp ảnh và tôi phải mất một lúc để tìm thấy nút đặc biệt này. Như đã giải thích trong câu hỏi / câu trả lời của tôi ở đó, có một cách, sử dụng UIEuityInspector . Bạn có thể tải xuống miễn phí từ Apple (liên kết tải xuống ở trên cùng trong một nút, liên kết trực tiếp tại đây ).

Nó cho phép bạn nhìn trộm các thành phần UI của mỗi cửa sổ bạn đang di chuột. Nhấn Cmd- F7khóa nội dung của nó vào thành phần bạn đang di chuột.

nhập mô tả hình ảnh ở đây

Phần "vui vẻ" thực sự là tìm ra cách cửa sổ được nhóm lại, và các yếu tố thuộc về cha mẹ nào. Trình duyệt UI ứng dụng $ 55 tuyên bố sẽ làm tốt hơn công việc này.

Khi bạn gỡ lỗi thủ công AppleScript và bạn đang ở trong phạm vi của một cửa sổ, bạn có thể thử đoán theo cách của mình xuống từng phần tử bằng cách sử dụng các lệnh như:

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

Chúng sẽ cung cấp cho bạn một danh sách mà bạn có thể sử dụng để thu hẹp tìm kiếm các yếu tố và tiêu đề tương ứng của chúng.


1
+100 đã cho tôi biết về UIEuityInspector
Nifle

@slhck - Chà! Thật là một câu trả lời tuyệt vời. Nó được đánh giá rất cao, và tôi sẽ làm việc ngay lập tức. Tuy nhiên, tò mò, vì tôi mới biết về AppleScript nói chung; Làm thế nào tôi có thể thực hiện các UI elementslệnh?
stefmikhail

1
@Stef Vâng, ví dụ UI Elements of window "Authenticate" of process .... Chỉ cần làm điều này trong trình soạn thảo AppleScript và xem kết quả ở phía dưới. Thật không may, tôi đã không tìm thấy một cách hiệu quả hơn để làm điều này mặc dù.
slhck

@slhck - Không không có âm thanh hoàn hảo. Và kết thúc UI Browser cung cấp bản dùng thử tính năng đầy đủ một tháng, vì vậy tôi cũng có thể thực hiện điều đó. Một lần nữa, cảm ơn rất nhiều.
stefmikhail

@stefmikhail Chắc chắn, không vấn đề gì! Hãy cho tôi biết Trình duyệt UI hoạt động như thế nào đối với bạn, chưa có thời gian để thử nó!
slhck
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.