Làm thế nào để biết tên của các thành phần UI bằng trình kiểm tra Trợ năng (hoặc bất kỳ công cụ nào khác)


21

Tôi đang cố gắng tương tác với hộp thoại in qua Applescript.

Điều tôi muốn mô phỏng là người dùng thiết lập một giá trị trên một danh sách cụ thể.

Nói rằng tôi có:

tell application "System Events"
  tell process "Preview"
    set value of pop up button XXX to YYY
  end tell
end tell

Làm cách nào để biết tên XXX? Ví dụ: làm cách nào để phân biệt giữa danh sách thả xuống "máy in" và "cài đặt trước"?

Tôi đã mở Trình kiểm tra khả năng truy cập, nhưng từ thông tin hiển thị ở đó, tôi không thể phát hiện ra một tham chiếu đến tên hoặc một số định danh duy nhất khác cho danh sách thả xuống được chỉ định.

Tôi đã thấy nhiều người sử dụng các số để chỉ các danh sách thả xuống khác nhau, nhưng tôi không chắc đây là cách thực hành tốt. Điều gì xảy ra nếu Apple quyết định hoán đổi thứ tự của hai lần thả xuống tại một số điểm?

Bất kỳ trợ giúp sẽ được đánh giá cao.

CẬP NHẬT :

Sử dụng 10.6.8 và thanh tra theo đề xuất dưới đây, tôi nhận được như sau:

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


Tôi tìm thấy UI elementslệnh từ đây hữu ích cũng như: n8henrie.com/2013/03/a-strategy-for-ui-scripting-in-applescript
PHS

Đây là một liên kết đến một trang khác trong Hỏi khác được liên kết đến trang hiện tại, được gọi là: AppleScript - Làm cách nào tôi có thể nhận được tên, thuộc tính, thuộc tính, các lớp của lập trình mà không cần đoán đoán thông qua Trình kiểm tra khả năng truy cập? (Câu hỏi ở đây là lý do tại sao tôi muốn tìm hiểu một số sự kiện cơ bản về "Cách thực hiện")
clemsam lang

Câu trả lời:


15

CẬP NHẬT. cái này sẽ hoạt động trong 10.7.x nhưng 10.6 có thông tin phần tử les.

Các nút (thả xuống) trong Bảng in có Mô tả để mô tả chức năng.

Trong thanh tra tiếp cận ; bạn thấy điều này khi di chuột qua phần tử (nút). bạn có thể khóa chế độ xem của thanh tra Trợ năng với cmd + F7.

Mô tả sẽ được liệt kê dưới dạng mô tả AXD

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

Trong các trường hợp cho các Máy in, nó là Máy in cho các cài đặt trước, đó là các cài đặt sẵn

Nếu bạn biết mô tả AXD, bạn có thể tránh các số bằng cách sử dụng cái gì đó như thế này. Nhưng đây không phải là cách duy nhất. Chỉ là một ví dụ.

activate application "Preview"
tell application "System Events"
    tell process "Preview"
        click ((pop up buttons of sheet 1 of window 1) whose description is "Printers")
    end tell
end tell

Để làm việc ở trên trong ví dụ này, Bảng in phải được hiển thị cùng với 'Hiển thị chi tiết'

Nút / thả xuống có một menu. Vì vậy, bạn có thể chọn hoặc nhấp vào nó bằng cách tham khảo các mục menu của trình đơn của nút.

Theo số hoặc sử dụng tiêu đề / AXTitle của nó.

activate application "Preview"
    tell application "System Events"
        tell process "Preview"
            click ((pop up buttons of sheet 1 of window 1) whose description is "Presets")

click menu item "Last Used Settings" of menu of ((pop up buttons of sheet 1 of window 1) whose description is "Presets")
        end tell
    end tell

Bạn có thể rút ngắn mã lặp đi lặp lại bằng cách sử dụng một biến cho nút và gọi đó. Khi làm điều đó như ví dụ của tôi dưới đây;

   activate application "Preview"
tell application "System Events"
    tell process "Preview"
        set Presets_button to item 1 of ((pop up buttons of sheet 1 of window 1) whose description is "Presets")

        click Presets_button
        click menu item "Last Used Settings" of menu of Presets_button
    end tell
end tell


4

Đối với những người thắc mắc, dường như một địa điểm để tìm Trình kiểm tra khả năng truy cập trong 10.7 là:

/Appluggest/Xcode.app/Contents/Appluggest


1

Gần đây tôi đã viết lên quy trình làm việc của mình cho UI Scripting trong AppleScript .

Nói tóm lại, thành phần quan trọng giúp tôi dễ dàng hơn rất nhiều khi biết rằng UI Elementslệnh trong AppleScript trả về một danh sách các thuật ngữ mà AppleScript Editor muốn xem để gọi các Thành phần UI. Giao diện này với các điều khoản nhìn thấy từ Trình kiểm tra khả năng truy cập (thường hơi khác nhau) để xây dựng một kịch bản làm việc.

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.