<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://www.mywiki.cn/Hovercool/index.php?action=history&amp;feed=atom&amp;title=%E8%8E%B7%E5%8F%96%E7%AC%AC%E4%B8%89%E6%96%B9%E5%BA%94%E7%94%A8%E7%9A%84%E6%8E%A7%E4%BB%B6%E4%BF%A1%E6%81%AF</id>
	<title>获取第三方应用的控件信息 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://www.mywiki.cn/Hovercool/index.php?action=history&amp;feed=atom&amp;title=%E8%8E%B7%E5%8F%96%E7%AC%AC%E4%B8%89%E6%96%B9%E5%BA%94%E7%94%A8%E7%9A%84%E6%8E%A7%E4%BB%B6%E4%BF%A1%E6%81%AF"/>
	<link rel="alternate" type="text/html" href="https://www.mywiki.cn/Hovercool/index.php?title=%E8%8E%B7%E5%8F%96%E7%AC%AC%E4%B8%89%E6%96%B9%E5%BA%94%E7%94%A8%E7%9A%84%E6%8E%A7%E4%BB%B6%E4%BF%A1%E6%81%AF&amp;action=history"/>
	<updated>2026-09-01T06:32:04Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://www.mywiki.cn/Hovercool/index.php?title=%E8%8E%B7%E5%8F%96%E7%AC%AC%E4%B8%89%E6%96%B9%E5%BA%94%E7%94%A8%E7%9A%84%E6%8E%A7%E4%BB%B6%E4%BF%A1%E6%81%AF&amp;diff=1710&amp;oldid=prev</id>
		<title>2015年7月21日 (二) 04:13 Hovercool</title>
		<link rel="alternate" type="text/html" href="https://www.mywiki.cn/Hovercool/index.php?title=%E8%8E%B7%E5%8F%96%E7%AC%AC%E4%B8%89%E6%96%B9%E5%BA%94%E7%94%A8%E7%9A%84%E6%8E%A7%E4%BB%B6%E4%BF%A1%E6%81%AF&amp;diff=1710&amp;oldid=prev"/>
		<updated>2015-07-21T04:13:54Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;本文所说的工具均包含在 Android SDK中，位于 sdk\tools 目录下。&lt;br /&gt;
&lt;br /&gt;
有一些功能需要使用root权限，也有可能需要关闭 SEAndroid，所以当遇到问题时可以考虑使用 eng版本，并关闭 SEAndroid (adb shell setenforce 0)进行验证。&lt;br /&gt;
&lt;br /&gt;
==&amp;#039;&amp;#039;&amp;#039;hierarchyviewer.bat&amp;#039;&amp;#039;&amp;#039;==&lt;br /&gt;
&lt;br /&gt;
该工具可以帮我们找到 android控件的contentDescription，用作 find_element_by_accessibility_id 参数使用。&lt;br /&gt;
&lt;br /&gt;
工具一打开，首先是进入 selection-view 界面，这个界面显示了当前机器的layer层级结构，例如在普通应用中，微信是在最前端的，在其之上还有 StatusBar等 layer：&lt;br /&gt;
&lt;br /&gt;
[[文件:selection-view.png|500px]]&lt;br /&gt;
&lt;br /&gt;
选中想要查看的layer，点击上方的 &amp;#039;&amp;#039;&amp;#039;Load View Hierarchy&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Inspect Screenshot&amp;#039;&amp;#039;&amp;#039;，可以获取该 layer的控件层级关系，其中&amp;#039;&amp;#039;&amp;#039;Load View Hierarchy&amp;#039;&amp;#039;&amp;#039;内容更为详尽，而&amp;#039;&amp;#039;&amp;#039;Inspect Screenshot&amp;#039;&amp;#039;&amp;#039;则更为直观。&lt;br /&gt;
&lt;br /&gt;
[[文件:hierarchyviewer-tree.png]]&lt;br /&gt;
&lt;br /&gt;
通过右下角选中任一控件后，就会在右中的位置显示该控件的 Accessbility（其中的 contentDescription可用于 find_element_by_accessibility_id），Layout，Text（可用于 find_element_by_name）等信息，例如下方截图就是选中“退出”按钮时的情况：&lt;br /&gt;
&lt;br /&gt;
[[文件:hierarchyviewer-tree-property.png]]&lt;br /&gt;
&lt;br /&gt;
点击左下方的 &amp;#039;&amp;#039;&amp;#039;Switch to the pixel perfect view&amp;#039;&amp;#039;&amp;#039;，可以看到之前执行&amp;#039;&amp;#039;&amp;#039;Inspect Screenshot&amp;#039;&amp;#039;&amp;#039;的结果：&lt;br /&gt;
&lt;br /&gt;
[[文件:hierarchyviewer-prefect-view.png]]&lt;br /&gt;
&lt;br /&gt;
上图左方为该 layer的 layout排布（对应设计文件的 xml），这个可以尝试一下用于 find_element_by_xpath定位，中间的是详细的界面坐标和颜色信息，右边则是截图。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;#039;&amp;#039;&amp;#039;uiautomatorviewer.bat&amp;#039;&amp;#039;&amp;#039;==&lt;br /&gt;
&lt;br /&gt;
打开后，点击左上方 &amp;#039;&amp;#039;&amp;#039;Device Screenshot&amp;#039;&amp;#039;&amp;#039;按钮（见下图红框标记），可以得到当前界面的截图，通过选取截图上的控件，就可以获得相关信息：&lt;br /&gt;
&lt;br /&gt;
[[文件:ui_automator.png]]&lt;br /&gt;
&lt;br /&gt;
如右下角的 resource-id，就可用于 find_element_by_id。&lt;br /&gt;
&lt;br /&gt;
ps. 在android 4.0后面的版本上，appium也正是通过 uiautomator来获取控件的。&lt;/div&gt;</summary>
		<author><name>Hovercool</name></author>
	</entry>
</feed>