Lỗi sử dụng FLAUI3 để get properties của AutomationElement

Dear Team,
Capture
Mình có tham khảo Hỏi về cách get text của Rich TextBox trên WPF application. Nhưng khi sử dụng thì gặp lỗi như trên. Nhờ Team support với ạ.
Thanks.

Workflow

  • Mở app lên
  • Tạo một variable type automation element của button OK
  • Sau đó invoke code vô để lấy được fontname của button OK => cuối cùng là show fontname

Hi @quangtruong ,

Phiền bạn zip workflow để cho việc điều tra dễ dàng hơn nhé

akaBotDemo.zip (2.1 MB)
workflow của mình đây. Nhờ các bạn điều tra giúp nhé.
Thanks

Hi @quangtruong ,

Cảm ơn bạn, để team check và phản hồi lại cho bạn sớm nhất có thể

Hi @quangtruong !
Lỗi bạn gặp là do : Patern text không được support với loại control dạng “button”.
Chỉ có control dạng Text Input mới support patern này.

Về chi tiết kỹ thuật thì như thế này :

Để hỗ trợ được automation thì mỗi một control trên các ngôn ngữ lập trình như VB, C#… đều phải tự implement Iaccessible interface để cho phép các chương trình khác thông qua kỹ thuật automation mà truy xuất tới. Các interface này thường chỉ support một số ít tính năng đặc trưng của control thôi…
Đến các app thế hệ sau ( .NET) thì mở rộng thành các patern cho phép các chương trình khác giao tiếp, có thể đọc được nhiều thông tin hơn tuy vậy nó vẫn chỉ tập trung vào các đặc trưng của control đó với các thuộc tính giới hạn.
Ví dụ như : text control thì có TextPatern , Value patern …etc cho phép đọc được khá nhiều thông tin như : color , fontSize…etc

Các control như “Button” không hỗ trợ TextPatern mà chỉ hỗ trợ các patern cơ bản như :
Invoke : cho phép gọi click event
Iaccessible patern : cho phép đọc các thông tin cơ bản như trạng thái của button ( disable)

Để kiểm tra bạn có thể tải chương trình FLAUI Inspect về rồi test thử :
Nếu FlaUI mà đọc ra được thì tức là bạn có thể viết code để truy xuất được.

Ví dụ : Dùng FlaUI Inspect tool để soi các patern được support của textbox Password:
Bạn sẽ thấy là nó được được Font Color và FontName…


Tuy nhiên : Button OK lại không support các patern này :
Ta chỉ truy xuất được vào Iaccessible patern, đọc được text value , state thôi!

Để đọc được thông tin như bạn yêu cầu với control dạng “button” thì phải dùng các kỹ thuật khác , hiện chưa được implement trong Akabot bạn nhé !

1 Like

Cảm ơn team đã hỗ trợ :+1:

This topic was automatically closed 60 minutes after the last reply. New replies are no longer allowed.