APP中的元素定位工具大致有三种:

  • uiautomatorviewer工具
  • Appium Inspector工具
  • Chrome Inspect工具

提示:本篇文章介绍Chrome Inspect工具。

1、Chrome Inspect介绍

Chrome Inspect定位工具是用来抓取APP中Webview页面的。

为了项目的需求,为了更好的保证效果和布局跨平台,Android&H5混合开发一般是我们不错的选择。Google浏览器中的Chrome Inspect定位工具,提供了一个移动端Web页面开发调试的功能,通过它我们可以调试手机页面,可以看到页面的源码,从而进行元素的定位。

使用Chrome Inspect定位工具的前提条件

使用Chrome开发人员工具调试原生Android应用中的WebView,Android版本应该在Android4.4(KitKat)或更高版本上,通过DevTools在原生Android应用中调试WebView页面中的内容。

2、Chrome Inspect打开方式

打开PC端的Chrome浏览器,在访问地址栏中输入chrome://inspect/就可以了,就是这么简单。

如下图:

3、Chrome Inspect工具的使用

(1)Chrome Inspect工作前提

  • 所测试设备是开机状态(手机或者模拟器)。
  • 确保电脑与设备是链接状态,也就是

    cmd进入命令行终端,

    输入adb connect 127.0.0.1:21503链接逍遥模拟器,

    输入adb devices能够获取设备名称。

(2)Chrome Inspect操作

1)在APP中打开含有Webview的页面

例如:开百度APP,进入到微博登陆的界面就是一个含有Webview的页面。

如下图:

2)在Chrome Inspect中识别到Webview页面

我们进入到PC端的Chrome浏览器中,访问地址栏中输入chrome://inspect/(没有显示的话就点击一下刷新),就可以检测到当前应用程序界面是Webview页面了。

如下图:

3)点击inspect可以进入调试视图

点击如上图中的inspect,可以进入Chrome Inspect工具的调试视图 .

会弹出一个新窗口,显示当前页面的Webview元素信息。

并且元素定位方法同Selenium WebDriver一致。

就是这么简单。

4、使用Chrome Inspect遇到的问题

(1)Android系统版本问题

Android移动设备版本应该在Android4.4或更高版本上。

从Android 4.4开始,webkit是支持远程调试的。

(2)所测App的debug模式要打开

在使用Chrome Inspect工具调试移动端APP的Webview页面的时候,需要将该APP的debug模式打开。

但其实大部分APP的debug模式都是关闭的,要去找一个开启debug模式的版本还是比较麻烦的。

因此需要使用借助第三方工具来强制开启任何APP的Android webview debug模式,使之可以使用Chrome Inspect。

而这个工具就是Xposed

(3)Xposed工具的安装

1)将设备进行root。

因为涉及到root权限,因此需要将设备进行root

有很多工具可以来root,比如KingRoot等。

注:Android模拟器默认root。

2)下载Xposed框架。

官方下载地址:http://repo.xposed.info/module/de.robv.android.xposed.installer

点击页面下方的Show older versions,选择一个稳定版本进行下载。

3)安装Xposed框架。

将下载好的Xposed安装包de.robv.android.xposed.installer_v32_de4f0d.apk,直接拖入到Android模拟器中,进行安装。

安装好后如下图:

4)安装/更新Xposed框架。

打开Xposed Installer,选择“安装/更新”的最新版,然后点“安装”会自动下载刷入。(过程可能会有一些慢)

如下图所示:

安装界面,如下图所示:

安装更新完成后的界面,如下图所示:

4、安装Xposed webview debugging模块。

打开Xposed界面中点击左上角的三条横杠,选择模块,然后启用需激活模块的复选框,正常重启后即可使用。

如下图所示:

如果你的手机中没有安装WebViewDebugHook模块或者没有任何模块,如下图:

可以在Xposed中进行下载安装WebViewDebugHook模块。

如下图所示:

然后按照上面的方式激活WebViewDebugHook模块即可。

(4)HTTP/1.1 404 Not Found和空白页问题

chrome://inspect/#devices中点击inspect出现的窗口中,界面是出现HTTP/1.1 404 Not Found或者是空白页的现象。

空白页,如下图所示:

HTTP/1.1 404 Not Found界面,如下图所示:

原因:

对于国内的程序猿来说,由于无法访问 https://chrome-devtools-frontend.appspot.com,就会出现出现HTTP/1.1 404 Not Found或者空白页面的现象。

例如上面的@33f6ad690e178169a17596eeec8596751a696d1e就是移动设备中浏览器的一个版本号,当你换一个手机或模拟器的时候,版本号可能就不一样了。

因为不同型号的手机生产商可能会打包不同版本的Chrome浏览器内核,Chrome Inspect定位工具就会先访问 https://chrome-devtools-frontend.appspot.com,下载对应的chrome-devtools相关驱动,而国内无法访问并下载这些驱动,就出现了404和空白页。

网上找到如下三种解决方式:

  • 方法一:下载devtoolsinspect离线开发者调试工具包。(花钱,没有免费的)
  • 方法二: 修改网络连接,修改hosts文件。
  • 方法三:使用第三方的chromium内核的浏览器,如QQ浏览器。

(都不好使,大家也可以自己试试)

推荐使用VPN,或者下载一个可FQ的谷歌浏览器用一下即可,不用的时候就关了。

(5)补充:安卓模拟器打开开发者选项

  1. 打开手机的“设置”,进入到“设置”页面;
  2. 滑到“设置”页面的最下端,找到“关于手机”,进入到“关于手机”页面;
  3. 找到“版本号”,连续点击。
  4. 会弹出一段文字提醒,直到提醒次数为0后,结束点击。
  5. 返回“设置”界面,开发者选项就出来了。

『与善仁』Appium基础 — 19、元素定位工具(三)的更多相关文章

  1. 『与善仁』Appium基础 — 17、元素定位工具(一)

    目录 1.uiautomatorviewer介绍 2.uiautomatorviewer工具打开方式 3.uiautomatorviewer布局介绍 4.uiautomatorviewer工具的使用 ...

  2. 『与善仁』Appium基础 — 18、元素定位工具(二)

    目录 1.Appium Inspector介绍 2.Appium Inspector打开方式 3.Appium Inspector布局介绍 4.Appium Inspector工具的配置 5.Appi ...

  3. 『与善仁』Appium基础 — 20、Appium元素定位

    目录 1.by_id定位 2.by_name定位 3.by_class_name定位 4.by_xpath定位 5.by_accessibility_id定位 6.by_android_uiautom ...

  4. 『与善仁』Appium基础 — 27、模拟手势点击坐标

    目录 1.模拟手势点击坐标 2.tap()用法 3.练习 4.弊端 1.模拟手势点击坐标 在定位元素的时候,你使出了十八班武艺还是定位不到,怎么办呢?(面试经常会问) 那就拿出绝招:点击元素所在位置的 ...

  5. 『与善仁』Appium基础 — 28、webview的操作方式

    目录 1.先了解什么是Hybrid(混合) 2.识别Webview 3.context上下文 4.Webview和原生页面之前的切换 5.综合练习 我们之前说过的所有操作,都是对原生页面的操作. 在手 ...

  6. 『与善仁』Appium基础 — 12、Appium的安装详解

    目录 (一)Appium server安装 方式一:(桌面方式:推荐) 1.Appium Desktop下载 2.Appium Desktop安装 3.Appium Desktop使用 方式二:(No ...

  7. 『与善仁』Appium基础 — 22、获取元素信息的操作(一)

    目录 1.获取元素文本内容 (1)text()方法 (2)get_attribute()方法 (3)综合练习 2.获取元素在屏幕上的坐标 1.获取元素文本内容 (1)text()方法 业务场景: 进入 ...

  8. 『与善仁』Appium基础 — 23、操作滑动的方式

    目录 1.swipe滑动 2.scroll滑动 3.drag拖拽事件 4.滑动方法小结 5.拓展:多次滑动 6.综合练习 在Appium中提供了三种滑动的方式,swipe滑动.scroll滑动.dra ...

  9. 『与善仁』Appium基础 — 25、APP模拟手势高级操作

    目录 1.手指轻敲操作 2.手指按下和抬起操作 3.等待操作 4.手指长按操作 5.手指移动操作 6.综合练习 APP模拟手势的动作都被封装在TouchAction类中,TouchAction是App ...

随机推荐

  1. 攻防世界 杂项 2.embarrass

    解1: linux环境下直接strings misc_02.pcapng | grep flag可得flag. 解2: 使用wireshark搜索flag. 解3: winhex搜索flag.

  2. Go语言核心36讲(Go语言进阶技术十)--学习笔记

    16 | go语句及其执行规则(上) 我们已经知道,通道(也就是 channel)类型的值,可以被用来以通讯的方式共享数据.更具体地说,它一般被用来在不同的 goroutine 之间传递数据.那么 g ...

  3. sort-list leetcode C++

    Sort a linked list in O(n log n) time using constant space complexity. C++ /** * Definition for sing ...

  4. Python3使用Print输出彩色字体

    一.介绍 在一些开发程序中,有些输出消息需要突出显示,我们可以尝试着给他们换上更靓丽的颜色来突出显示. 二.实现过程 终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关. ...

  5. Django 开发------django-crontab实现服务端的定时任务

    一.需求: 想实现类似 Linux 中crontab 的功能.定时执行计划任务. 二.配置: a.安装插件: # pip3 install django-crontab b.在settings.py ...

  6. 浅谈web前端优化

    开篇 优化网站是一个系统性和持续性的过程.很多人认为优化网站的性能只需要合并图片啦,减小HTTP请求啦,部署CDN啦就行,实际上这都是见木不见林的做法.以上的做法经常会被面试者提起,在被问到自己在网页 ...

  7. 查看python是32位,还是64位

    步骤:cmd打开命令行,输入python,查看. 如果32bit,则是32位:如果是64,则是64位 如果需要安装客户端进行orcale数据库操作,则要保证python\

  8. [hdu6601]Keen On Everything But Triangle

    有两个结论:1.排序后,答案一定是连续的三个数:2.当序列长度超过44一定有三个相同的数(因为即使该序列是斐波那契数列,此时也超过了1e9),然后用主席树等数据结构(略卡常,建议主席树)来维护前45大 ...

  9. [luogu4607]反回文串

    参考ARC064F 令$h(n)=\begin{cases}n(n为奇数)\\\frac{n}{2}(n为偶数)\end{cases}$,$f(n)$定义与ARC064F相同,答案即$\sum_{d| ...

  10. [loj2586]选圆圈

    下面先给出比较简单的KD树的做法-- 根据圆心建一棵KD树,然后模拟题目的过程,考虑搜索一个圆 剪枝:如果当前圆[与包含该子树内所有圆的最小矩形]都不相交就退出 然而这样的理论复杂度是$o(n^2)$ ...