App 元素定位工具

元素定位工具

Android / IOS常用的元素定位工具
针对包括原生(APP)、Web(WEBVIEW)和混合(APP与WEBVIEW)。
uiautomatorviewer(APP原生–Android)
uiautomatorviewer是Android SDK里的一个工具,这个工具在Android SDK目录下的tools文件夹下。uiautomatorviewer使用简单,速度也相对比较快。
在Windows / Mac环境下操作基本一致,这里以Windows进行讲解。使用adb devices命令查看模拟器或真机是否连接上
在模拟器或真机里,打开要定位元素的App应用程序,操作到想要定位的页面。之后双击打开uiautomatorviewer文件。
uiautomatorviewer工具打开后,点击左上角的拍照按钮。
App 元素定位工具
点击完后,设备上的界面就会被同步到这个工具的左侧,点击左侧需要查看的控件,在这个工具的右侧就可以看到对应这个控件的详细信息。
如果需要继续定位其他页面里的元素,将设备操作到要定位元素的页面后,再次点击工具左上角的拍照按钮,就可以抓取最新的页面元素信息。
点击保存按钮,可保存页面屏幕截屏和.uix文件(页面源码)。
保存后,生成的2个文件(页面屏幕截屏和.uix文件)。
点击打开文件,可以将之前保存好的页面屏幕截屏和.uix文件导入进来。
导入后即可进行元素定位操作。

Appium Inspector(APP原生-Android&IOS)
Appium Inspector是Appium Desktop附带的一个元素定位检查器,用来调试定位应用程序很方便。
使用前,要确保设备已经连接上 adb devices
启动Appium Desktop。
App 元素定位工具
Simple模式可以设置服务IP和端口。
Advanced模式可以设置更多(例如:允许会话重写),之后可以保存此预设置。例如demo
Presets模式可以启动或删除之前保存好的预设置。例如:之前保存好的Demo预设置进行启动或删除。
一般选择Simple模式即可。如服务IP和端口默认的情况下,点击Start Server v1.9.0来开启Appium服务。点击放大镜
选择Automatic Server配置Desired Capabilities信息。
可以直接点击左边Desired Capabilities添加或删除完善Desired Capabilities信息。也可以直接把Desired Capabilities生成JSON直接复制到右侧的JSON Representation框中并保存。两种方法效果是一样的。
例如JSON信息:
1.{
2. ‘automationName’ : ‘Appium’,
3. ‘platformName’: ‘Android’,
4. ‘platformVersion’:‘5.1.1’,
5. ‘deviceName’:‘honor’,
6. ‘udid’:‘127.0.0.1:21503’,
7. ‘appPackage’:‘com.android.settings’,
8. ‘appActivity’:’.Setting’
9.}
App 元素定位工具
之后点击Start Session。
启动成功后,默认会启动首页,如果需要查看其它页面的控件信息,可以在设备上手动点击进入需要查看的页面,然后点击屏幕*的刷新按钮,刷新屏幕即可。在左侧显示区域移动鼠标,可以看到选中区域元素的属性。

Chrome Inspect(WEBVIEW)
Chrome Inspect是Chrome提供的一个移动端Web开发调试工具,通过它我们可以调试手机页面,可以看到页面的源码,从而进行元素的定位。
打开设备应用程序里含有Webview的页面,接下来打开PC的Chrome浏览器,输入访问地址chrome://inspect/
如图所示,可以检测到当前应用程序界面是Webview。
App 元素定位工具
点击页面的inspect链接,弹出新窗口,显示当前页面的Webview元素信息。元素定位方法同Selenium WebDriver一致。
App 元素定位工具
注意:当连接的设备是真机时,Chrome Inspect是无法检测到Webview页面的
从Android 4.4开始,webkit是支持远程调试的,不过需要将App的debug模式打开,可以使用如下代码:WebView.setWebContentsDebuggingEnabled(true);
其实大部分App的debug模式都是关闭的,要去找一个开启debug模式的版本还是比较麻烦的。因此需要使用借助第三方工具来强制开启任何App的Android webview debug模式,使之可以使用Chrome Inspect。而这个工具就是Xposed。
解决方法:
1、将设备进行root
因为涉及到root权限,因此需要将设备进行root。有很多工具可以来root,比如KingRoot等。
2、安装Xposed框架
打开Xposed文件里的de.robv.android.xposed.installer_v33_36570c.apk安装到设备里。
或者:
打开官网地址下载安装:
http://repo.xposed.info/module/de.robv.android.xposed.installer
3、安装Xposed webview debugging模块
打开Xposed文件里的WebViewDebugHook.apk安装到设备里。
4、**Xposed
安装完上述2个程序之后,可以看到设备上出现了一个叫Xposed Installer的图标,点击进去之后会看到提示说Xposed未**,点击进入框架页面,点击“安装/更新”按钮即可。安装完成之后,重启再打开,点击进入模块页面,勾选“webView debug hook”,再重启,重启之后即**了Xposed。之后就可以使用Chrome Inspect查看App的webview页面元素了。