2011-01-13 14 views
5

ビューを見ることはできますが、その中のボタンを見る/タップすることはできません。このボタンにはアクセシビリティを有効にしたアクセシビリティラベルUIA_loginview_loginbuttonがあります。なぜそれがlogElementTree()に表示されないのですか?なぜ私のビューのボタンがUIAutomationに見えないのですか?

var target = UIATarget.localTarget(); 
var application = target.frontMostApp(); 
var window = application.mainWindow(); 
var view = window.elements().firstWithName("UIA_loginview_view"); 


UIATarget.localTarget().logElementTree(); 
UIATarget.localTarget().frontMostApp().logElementTree(); 


if(view == null || view.toString() == "[object UIAElementNil]") 
{ 
UIALogger.logFail("View not found - "+view.toString()); 
} 
else 
{ 
    UIALogger.logPass("View found - "+view.toString()); 
    UIALogger.logMessage("View Elements length - "+view.buttons().length); 
    view.buttons()["UIA_loginview_loginbutton"].tap(); 
} 

ログ要素ツリー://それ

4内のボタン私の図を示しているではなく)UIAElement [名:UIA_loginview_view値:(ヌル)NSRect:{{0、20}、{320、 460}}]

+0

{}を使用してコードを編集してください。編集ウィンドウの上にコードを書いてください。 – Axel

答えて

12

ボタンのアクセシビリティプロパティがコンテナビューによって隠されていないことを確認します。ユーザーがアクセス可能であるべき要素のみがそのようにマークされなければなりません。 Interface Builderでコンテナビューで「アクセシビリティ」を有効にすると、階層内のすべてのサブ要素がUIAutomationによって表示されなくなります。

それは役に立ちましたか?

+0

はい、ありがとうございました! :D – Aldrich

+0

ありがとう、私はこれを忘れている! – phatmann

関連する問題