2011-11-22 3 views
2

Cocoa Accessibility API를 사용하여 타사 응용 프로그램에서 정보를 얻어야합니다. 타사 응용 프로그램은 WebView를 사용하여 사용자 인터페이스 (AXWebArea 역할)를 표시합니다. 이 AXUIElement에는 자식이 없습니다.접근성 API : AXWebArea 하위 요소 (또는 HTML 소스)

if ([role isEqualToString:@"AXWebArea"]) 
{ 
     NSArray *names; 
     AXUIElementCopyAttributeNames(foundElement, (CFArrayRef *)&names); 

     NSLog(@"%@", names); 
} 

이 코드 출력 :

AXRole, 
AXSubrole, 
AXRoleDescription, 
AXChildren, 
AXHelp, 
AXParent, 
AXPosition, 
AXSize, 
AXTitle, 
AXDescription, 
AXValue, 
AXFocused, 
AXEnabled, 
AXWindow, 
AXSelectedTextMarkerRange, 
AXStartTextMarker, 
AXEndTextMarker, 
AXVisited, 
AXLinkedUIElements, 
AXSelected, 
AXBlockQuoteLevel, 
AXTopLevelUIElement, 
AXLinkUIElements, 
AXLoaded, 
AXLayoutCount, 
AXLoadingProgress, 
AXURL 

AXChildren가 비어 있으므로 제가 AXWebArea UI 요소 내부 HTML 요소에 액세스 할 수있다. 어떻게 액세스 할 수 있습니까?

답변

0

웹 콘텐츠가로드 되었습니까? 방금 ​​Safari에서 약간의 실험을했습니다. [이 페이지가] [1]로드 된 상태에서 접근성 검사기는 AXChildren에 83 개의 항목과 AXLinkUIElement에 121 개의 항목을 표시했습니다. 그러나 about : blank가로드 된 탭으로 전환하면 두 항목 모두에 대해 0 개의 항목이 표시됩니다.

내 개발 환경에서 접근성 검사 프로그램은 /Developer/Applications/Utilities/Accessibility\ Tools/입니다.

[1] : Accessibility API: AXWebArea children elements (or HTML source) 즉 바로이 페이지입니다.