AccessibilityService获取初始页面元素获取不到

利用AccessibilityService写了一个 游戏登录器,。qq账号自动登录功能

从QQ飞车 跳转到 QQ授权登录。两个应用。从1图点击qq登录到2图时

1图片说明

了获取不到qq授权账号登录的节点元素。求大神帮忙看下

 nowPackageName = event.getPackageName().toString();
        if (nowPackageName.equals("com.tencent.mobileqq")) {
            className = event.getClassName().toString();
            System.out.println(className);
            AccessibilityNodeInfo info= event.getSource();
            Toast.makeText(MyAccessibilityService.this, className, Toast.LENGTH_LONG).show();
            switch (className)
            {
                case "com.tencent.open.agent.AuthorityActivity":
                    try {
                        Thread.sleep(3000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    Toast.makeText(MyAccessibilityService.this, String.valueOf(  info.getChildCount()), Toast.LENGTH_LONG).show();

                    for (int i=0;i<info.getChildCount();i++)
                     {
                        if (info.getChild(i)!=null)
                        {
                            //info.getChildCount()=4,但是子节点元素这里是空的。因为默认进来窗口就是这样,是不是刚开始有些元素没有加载上,所以导致子元素是空的,
                            //然后 窗口改变后,再回到这个窗口下,这里就有元素了。









server配置如下

    android:description="@string/app_name"
    android:packageNames="com.tencent.mobileqq"
    android:accessibilityEventTypes="typeAllMask"
    android:accessibilityFlags="flagDefault"
    android:accessibilityFeedbackType="feedbackSpoken"
    android:notificationTimeout="100"
    android:canRetrieveWindowContent="true"/>
0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Android自动化测试中AccessibilityService获取控件信息(1)
AccessibilityService为一个响应用户发送AccessibilityEvent事件的服务类,主要用作对于一些辅助功能的实现中。对于某些方面有缺陷的人群,可以通过辅助功能反馈给用户。 关于AccessibilityService的介绍,网络上有很多,我就不多做介绍了。我把怎么实现它跟大家分享一下,以及怎么把它跟Android自动化测试扯上关系的学习过程给大家介绍一下。 第一步 在
AccessibilityService——实现自动遍历点赞功能
概述: 利用AccessibilityService机制实现了一个比较好玩儿的功能,微信朋友圈自动遍历点赞。即通过不断的滚动+点赞实现把每一条朋友圈都赞一次。 当然其中还要涉及一些判断算法,比如如果这条朋友圈已经赞过就跳过去,以及当前界面没有可赞的朋友圈时执行翻页。其实做起来试错是个很繁冗的过程,这个效果也差不多做了两天。 使用方式: 运行程序-开启无障碍服务,再切换到微信主界面,
Android 通过AccessibilityService实现微信自动抢红包时如何过滤已抢红包
网上搜了一圈抢红包的插件,发现有很多抢红包的实现教程,基本上都是借助AccessibilityService来实现的。 而且大多说文章说的都是原理,没有结合实际需求,讲怎么过滤已抢红包的,只能实现盲目的抢红包。 因此,只好自己想办法解决如何过滤已抢红包问题了
AccessibilityService获取控件信息getRootInActiveWindow() 经常为null,并且节点信息不全的问题
最近的项目中用了无障碍服务,想通过getRootInActiveWindow()来获取View节点,然后实现一些功能啊,但是发现getRootInActiveWindow(),经常性为null,获取不到子节点信息,而且获取不的全,只有一部分。 网上查了很多资料,对于无障碍服务的介绍比较少,看官方文档也没有发现什么解决方法。 但是自己理解,分析了一下然后解决出来了,给大家分享一下。 先说一下无...
AccessibilityService 检测正在运行的程序
##AccessibilityService 无障碍/辅助功能 ##使用这个服务需要用户手动授权   Demo:监听当前正在运行的程序   1.创建DetectionService继承 AccessibilityService   @Override public void onAccessibilityEvent(AccessibilityEvent event) {  if
Android 通过AccessibilityService实现微信聊天记录导出
接上Android 微信聊天记录、联系人备份并导出为表格继续讲 不太了解AccessibilityService可以看看这篇文章 基本原理: 首先打开 DDMS 捕捉界面元素 拿到resourceid,调用方法 List&amp;lt;AccessibilityNodeInfo&amp;gt; mListView = rootNode.findAccessibilityNodeInfosByViewI...
Android自动化之AccessibilityService模拟操作(经验总结)
有两种能实现后台运行并模拟操作安卓手机的方式,一种是使用adb命令模拟操作(参考:Android自动化之adb模拟操作(可实现按键精灵和手机输入法)),一种是AccessibilityService(参考:Android自动化之AccessibilityService模拟操作(快速集成))。 这篇笔记总结下使用AccessibilityService的一些经验。 经验总结 1、使用ecl
Android自动化测试中AccessibilityService获取控件信息(2)-三种方式对比
上一篇文章: Android自动化测试中AccessibilityService获取控件信息(1) 已经做到了获得控件信息,但是AccessibilityEvent.getSource()得到的是被点击的单体对象。我们需要获得是整个窗口的对象,在API16中AccessibilityService新引入的方法getRootInActiveWindow()可以满足我们的要求,所以我们用这个方法得
AccessibilityService 一个类似辅助的类
利用Android辅助工具类AccessibilityService可以获取手机当前页面的信息,用户的操作事件等等.首先新建一个类继承AccessibilityService:public class MyAccessibilityService extends AccessibilityService { private final String TAG = &quot;MyAccessibi...
初始化函数获取不到页面中${***}渲染填充的数据
&amp;lt;input type=&quot;text&quot; id=&quot;saveNo&quot; value=&quot;${equipmentNo}&quot;&amp;gt;&amp;lt;/input&amp;gt;有时候我们在初始化函数中获取不到equipmentNo,因为先初始化再渲染,也就是equipmentNo没有被赋值。...
关于获取 Android 前台 Activity 监听用户点击事件 Android辅助功能 Accessibility Services
概述Accessbility 又叫做辅助功能,是Android官方推出帮助身体不便或者操作不灵活的人来辅助操作手机应用的。当然也可以用来干一些别的事,比如自动抢红包啊,静默安装app,帮助用于开一系列权限操作等。出于项目需求,大概研究了下Accessilibity的基本用法。Accessibility用法实现自己的辅助功能类要实现自己的辅助功能,需要继承系统的AccessibilityServic...
Android监听用户行为操作(AccessibilityService)
前言 今天我们将使用AccessibilityService实现: 监听第三方程序的界面变化(监听第三方程序的启动的实现原理)。 模拟点击第三方应用的按钮(自动抢红包程序的实现原理)。 监听第三方程序的点击事件。 如果要测试的第三方应用不为自己的,则需要获取第三方应用的包名,当前Acvtivity等信息。可以参考: Android获取第三方程序的包名 模拟程序 我们先写一个模拟...
js/jquery获取不到页面元素 需要点击一下才能找到
2018-03-23 更新 更新内容:检查在获取的时候是不是使用class获取元素,如果是则修改为通过id获取元素。通过id获取元素是可以直接获取到的 以下为原文 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 在项目中,尤其是后台管理常用到iframe嵌套,但是最近遇到一个问题。 我在页面上想要去获取页面的一个元素,却无法获取到元素 但是使用...
父页面取不到 iframe中的元素
要获取iframe中的元素,需要建立在加载完成iframe元素的前提下:
AccessibilityService重新整理:微信自动抢红包、微信自动向附近的人打招呼
去年写过微信抢红包插件的实现,但是今年春节的时候发现微信更新之后我自己写的插件竟然会停在开红包的页面无法继续向下执行,debug之后发现问题是在该页面通过findAccessibilityNodeInfosByViewId()方法无法获取到有效的根节点,几经查看api之后仍未有效定位到原因,遂作罢。 这几天经同事提起抢红包的事,所以今天我又找到之前的代码,想尝试下通过获取微信指定控件的ID去实现
angularJS指令ng-repeat生成的dom元素js获取不到
用ng-repeat生成的元素用js怎么也获取不到;这个其中原由是:angular拥有自动化渲染DOM的特性,它能帮助我们专注于操作数据,而页面的渲染则由angular自身来完成。这就造成了 ng-repeat 循环完成后angular并不会告诉我们dom渲染完了;换句话说就是不知道angular渲染dom何时完成(得不到生成的元素是因为这个元素还没有渲染出来)。 也就是说要找一个方法使你知
针对appium中webview获取不到元素.如何进行来回切换从而获取h5的元素.
我们生活中的app很大一部分都是混合型的app   分别由移动端的开发人员开发的原生页面,以及h5的同学开发的h5页面进行融合.  其中有一部分的作用在于能更好的更换内容.以及维护. 下面我们就来说一说如何在原生页面遇到h5也就是android俗称的webview的时候,如何进行切换方式,来获取到元素. 现在来带大家看一下如何进行来回的切换.从而进行获取元素. 首先: 我们拿driver...
使用jQuery获取template.js渲染模板渲染出的HTML元素,获取不到的问题
问题: 作为一个前端开发的初学者,最近在GitHub上找到一个前端渲染模板template,我之前用的多数是jsp中的jstl进行数据渲染。我通过ajax从后天获取数据,然后赋值给data,如图: 我的前端的数据是问卷的各个选项包括单选、多选、填空等。我想通过从后端获取的答题信息对前端的各个选项进行选择,例如: jQuery的语法:KaTeX parse error: Expected 'EO...
vue渲染页面,获取不到元素
遇到的问题是 我已经通过调取后台接口拿到数据,付给全局变量,在vue里面渲染,但是当获取元素的时候得到的是空的数组1,拿到了数据2,初始化了数据3,渲染页面4,获取元素 得到的imgs是【】5,解决办法 加上this.$nextTick...
使用Ajax异步加载元素时用jQuery获取不到元素的解决方法
使用Ajax异步加载元素时用jQuery获取不到元素的解决方法 delegate() 方法为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。使用 delegate() 方法的事件处理程序适用于当前或未来的元素(比如由脚本创建的新元素)。 ...
用js获取不到标签元素
用js获取不到标签元素 问题 心血来潮想写个带音效的页面,结果发现获取不到标签元素。 这么个小问题,对js生疏的我,被折磨了好久。 思路 因为html页面的加载顺序是从上往下加载,因此js的执行代码应该放在需要获取的元素之后。 注意:此时的js脚本是在audio标签之前,因此打印出来的结果为null。 当我把js移到标签之后,成功的获取到了元素。 结论 希望以后再遇到这种问题,能迅速反应过来。...
利用AccessibilityNodeInfo完成Editview自动输入功能
AccessibilityNodeInfo完成Editview自动输入功能
appium+python+android 获取不到元素之解决方法
安装appium 1.14.16、1.7、1.9没有解决页面元素找不到的问题,网上各种扒大神的帖子也没有整好,环境搭建的也没问题,就是获取不到元素,最后换了6.0.1和5.0.1的安卓机,完美解决。 总结下: 1、搭建环境确认需要安装的组件和环境变量配置,以下是我搭建环境的各个版本号:   a、jdk 1.8.0   b、android sdk    c、python 3.6   d、...
android UI自动化,用uiautomator捕捉不到屏幕元素该如何解决?
如图,环境什么的都没问题,我都弄好了。关键一步是捕捉不到控件元素,虚拟机版本我4.1以上的都有试过,产品现在还没开发完,但是整体的模型出来了,app是用Unity开发的,问公司开发开发也不知道怎么回事,困扰了一个星期了,求大神解答这个app能不能做自动化。...
关于解决JQuery无法获取初始化时js生成的html标签
今天遇到这个问题,页面的一些div需要由js生成,而后需要对生成的div做一些赋值操作;问题是,这些js拼接的div,必须被渲染好之后,才能有JQuery选择器获取; 解决:利用setTimeout方法,该方法与页面初始化时不冲突的,可以指定多长时间后再执行该方法,这样就能在页面渲染完成之后,再获取这些div了。...
AccessibilityService辅助类用法(Android 中的另类钩子)
说在前面的话为什么会把AccesiibilistyService叫做Android 中的另类钩子呢?搞过windows的都知道,钩子的含义就是能够监听到一切你想监听的内容,而Android中的AccessibilityService也可以监听到我们需要的某些功能。用法简介AccessibilityService是一个辅助类,可以监听我们手机的焦点,窗口变化,按钮点击等等。实现它的服务需要在手机设置里
selenium中webdriver打开新页面无法获取页面元素
当我们使用selenium 抓取数据时候首先我们要明白问题出在哪里?在新打开页面,我们无法获取元素,是因为 句柄 不在当前打开页面,我们需要做的是将 句柄 移动到当前页面就ok 了我们以智联招聘为例:直接上代码# -*- coding: utf-8 -*- import scrapy import time from selenium import webdriverfrom tutorial.i
安卓辅助功能获取控件id
最近在写一个做一个滴滴出行的自动刷单的辅助功能时,想通过 accessibilityNodeInfo.findAccessibilityNodeInfosByViewId("com.sdu.didi.psnger:id/xo"); 方法获取空间,然后在获取控件的text,发现调用 getViewIdResourceName() 方法是返回为null,查看文档后发现只需配置flag就行了
关于js中layer.open获取不到弹出框中元素内容问题
layer.open({ type: 1, title: [ '确定抽查通知的接收单位?', 'background: -webkit-linear-gradient(left,#5199fe,#37c0fe); color:#fff;' ] ,content: $('.notice-layerbox').html() ,btn: ['确认', '取消']...
Android获得当前应用包名、当前activity的名字、推断是否是系统桌面、service类
1、获得当前应用包名 public static String getRunningActivityName(Context context) { ActivityManager activityManager=(ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);  //完整类名 String run
AccessibilityService的onKeyEvent方法分析,顺便初探Android的按键传递机制
  背景:我们的设备有实体键盘,有0,1,2,3,4,5,6,7,8,9实体按键,原来玩过诺基亚塞班系统的都知道,会有个Aa键和数字按键切换的按键,切换之后这几个实体按键可以输出字母,比如当切换到小写字母状态时,按一下2,会输出a,快速点击两下则会输出b,以此类推   问题:客户写了一个辅助服务来获取系统的按键,但是,只能获取到数字按键,不能获取到字母按键.   分析:这个问题肯定要去分析按键...
js style.width获取不到元素的宽度
jquery用习惯了,用width()就能获取元素的宽度,但有些时候用js获取元素宽度获取不到,document.getElementById(&quot;id&quot;).style.width,原因:1.元素未设置宽度值2.元素设置了宽度值,但,设置在内联或外联样式表中,而非内嵌式的。虽然这种方式获取不到元素宽度,但是可以设置宽度 document.getElementById(&quot;id&quot;).style.widt...
解决关于selenium 获取新页面元素失败的问题
当我们使用selenium 实现模拟登陆时,获取到登陆按钮元素后,直接调用它的click()方法就能实现登陆跳转,并且此时的webDriver 也是指向当前的页面,这个是没问题的,不过需要注意的是因为页面加载速度一般小于程序运行速度,所以在获取登陆后页面的元素之前,可以通过Thread.sleep()让程序睡眠一会(暂时只知道这种方法,亲测用while循环貌似不好使), 但是博主要说的重点是如
基于AccessibilityService实现微信消息的自动发送
基于AccessibilityService实现微信消息的自动发送功能需求了解AccessibilityService思路上代码 文章参考 :https://www.jianshu.com/p/0d45e03eb1e0 功能需求 使用代码控制微信,实现微信的自动发送和接受 了解AccessibilityService 手机的辅助功能(不了解的可以自行Google /坏笑) 不管怎么样,这个服务...
页面初始化获取div高和宽、窗口变化事件
1.最近在做一个项目里面的页面设计要满足不同屏幕的要求,即做到适应。但是有个问题里面使用的百度echarts图表所在的div的高度和宽度就要 设置一定,这样在开始的时候设定就很难满足所有屏幕的要求。     那么就可以可以将外层父级的div的宽度设置100%,通过初始化页面获取外层div的宽度,高度比较好解决,可以设定死,不变的。 2.所以在初始化页面的时候获取外层div的宽度,通过计算将合
xiaocong的uiautomator有时候找不到界面元素的问题和解决
问题最近一直在用xiaocong的uiautomator做android的自动化测试,这是一个python对android uiautomator的包装,非常好用。不过最近经常出现一个问题,界面上明明有这个元素,但是xiaocong的uiautomator却无法发现,无法点击。解决经过一番折腾,我猜测解决问题的核心大概在于setCompressedLayoutHeirarchy方法。setCompr
APP中H5页面再次进入定位不到元素的解决办法
在用appium测试android混合应用时,程序第一次切换到webview时,可以正常进行自动化测试,但是当程序第二次切换到webview时,appium会自动找到第一次打开的HTML页面,那么这时,appium就无法定位我们第二次打开的html页面中的元素。 我们可以通过更改appium源码的方式进行解决这个问题appium安装目录吓得文件:appium\node_modules\appium...
进入页面获取不到audio/video属性值问题
有时候我们不用html5自带的视频/音频的控件,需要自定义, 这个时候可能就需要用到一些audio/video属性值。我们有个业务场景需要进入页面就获取音频的总时长, 但一直无法获取到,只有和页面产生交互才能获取,折腾了一段时间,总算解决了。  当音频/视频处于加载过程中时,会依次发生以下事件: loadstart durationchange loadedmetadata loadeddata...
android 7.0 辅助服务部分节点不能点击问题
网上介绍文章:https://blog.csdn.net/qq_24641847/article/details/77683826?locationNum=3&amp;amp;fps=1自己在写一个项目的时候,发现7.0 和 6.0 的有差别,同样的代码6.0 能点击但到了7.0就不能点击。知乎看到了:(1)这个问题不是android 7的问题,AccessibilityService 可监听 点击事件,...
jq 获取弹出层元素
<div id="cardDiv" class="modal in" style="overflow: auto; display: none;" tabindex="-1" aria-hidden="false">
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 获取教育大数据 python获取股票价格