2011-11-22 59 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]的加載,Accessibility Inspector向AXChildren展示了83件產品和AXLinkUIElements共121件產品。 但是當我切換到帶有about:blank加載的選項卡時,它顯示了兩個項目。

在我的開發環境中,Accessibility Inspector應用程序位於/Developer/Applications/Utilities/Accessibility\ Tools/

[1]:Accessibility API: AXWebArea children elements (or HTML source),即該頁面。