3

我需要使用 Cocoa Accessibility API 从第三方应用程序获取信息。第三方应用程序使用 WebView 来显示其用户界面(AXWebArea角色)。此 AXUIElement 没有子级。

 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为空,因此我无法访问AXWebAreaUI 元素内的 HTML 元素。我怎样才能访问它们?

4

1 回答 1

0

您确定网页内容已加载吗?我只是用 Safari 做了一个小实验。加载 [this page][1] 后,Accessibility Inspector 显示 AXChildren 有 83 个项目,AXLinkUIElements 有 121 个项目。但是当我切换到加载 about:blank 的选项卡时,它显示了 0 个项目。

在我的开发环境中,Accessibility Inspector 应用程序位于/Developer/Applications/Utilities/Accessibility\ Tools/.

[1]:可访问性 API:AXWebArea 子元素(或 HTML 源),即这个页面。

于 2011-12-27T09:40:54.437 回答