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问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
AccessibilityService获取控件信息getRootInActiveWindow() 经常为null,并且节点信息不全的问题
最近的项目中用了无障碍服务,想通过getRootInActiveWindow()来获取View节点,然后实现一些功能啊,但是发现getRootInActiveWindow(),经常性为null,获取不到子节点信息,而且获取不的全,只有一部分。 网上查了很多资料,对于无障碍服务的介绍比较少,看官方文档也没有发现什么解决方法。 但是自己理解,分析了一下然后解决出来了,给大家分享一下。 先说一下无...
Android自动化测试中AccessibilityService获取控件信息(1)
AccessibilityService为一个响应用户发送AccessibilityEvent事件的服务类,主要用作对于一些辅助功能的实现中。对于某些方面有缺陷的人群,可以通过辅助功能反馈给用户。 关于AccessibilityService的介绍,网络上有很多,我就不多做介绍了。我把怎么实现它跟大家分享一下,以及怎么把它跟Android自动化测试扯上关系的学习过程给大家介绍一下。 第一步 在
uiautomator获取不到动态界面的缘由
这几天查看了下源码发现,
AccessibilityService 检测正在运行的程序
##AccessibilityService 无障碍/辅助功能 ##使用这个服务需要用户手动授权   Demo:监听当前正在运行的程序   1.创建DetectionService继承 AccessibilityService   @Override public void onAccessibilityEvent(AccessibilityEvent event) {  if
利用AccessibilityNodeInfo完成Editview自动输入功能
AccessibilityNodeInfo完成Editview自动输入功能
Android自动化测试中AccessibilityService获取控件信息(2)-三种方式对比
上一篇文章: Android自动化测试中AccessibilityService获取控件信息(1) 已经做到了获得控件信息,但是AccessibilityEvent.getSource()得到的是被点击的单体对象。我们需要获得是整个窗口的对象,在API16中AccessibilityService新引入的方法getRootInActiveWindow()可以满足我们的要求,所以我们用这个方法得
页面初始化获取div高和宽、窗口变化事件
1.最近在做一个项目里面的页面设计要满足不同屏幕的要求,即做到适应。但是有个问题里面使用的百度echarts图表所在的div的高度和宽度就要 设置一定,这样在开始的时候设定就很难满足所有屏幕的要求。     那么就可以可以将外层父级的div的宽度设置100%,通过初始化页面获取外层div的宽度,高度比较好解决,可以设定死,不变的。 2.所以在初始化页面的时候获取外层div的宽度,通过计算将合
Android 通过AccessibilityService实现微信聊天记录导出
接上Android 微信聊天记录、联系人备份并导出为表格继续讲 不太了解AccessibilityService可以看看这篇文章 基本原理: 首先打开 DDMS 捕捉界面元素 拿到resourceid,调用方法 List&amp;lt;AccessibilityNodeInfo&amp;gt; mListView = rootNode.findAccessibilityNodeInfosByViewI...
js/jquery获取不到页面元素 需要点击一下才能找到
2018-03-23 更新 更新内容:检查在获取的时候是不是使用class获取元素,如果是则修改为通过id获取元素。通过id获取元素是可以直接获取到的 以下为原文 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 在项目中,尤其是后台管理常用到iframe嵌套,但是最近遇到一个问题。 我在页面上想要去获取页面的一个元素,却无法获取到元素 但是使用...
关于获取 Android 前台 Activity 监听用户点击事件 Android辅助功能 Accessibility Services
概述Accessbility 又叫做辅助功能,是Android官方推出帮助身体不便或者操作不灵活的人来辅助操作手机应用的。当然也可以用来干一些别的事,比如自动抢红包啊,静默安装app,帮助用于开一系列权限操作等。出于项目需求,大概研究了下Accessilibity的基本用法。Accessibility用法实现自己的辅助功能类要实现自己的辅助功能,需要继承系统的AccessibilityServic...
安卓辅助功能获取控件id
最近在写一个做一个滴滴出行的自动刷单的辅助功能时,想通过 accessibilityNodeInfo.findAccessibilityNodeInfosByViewId("com.sdu.didi.psnger:id/xo"); 方法获取空间,然后在获取控件的text,发现调用 getViewIdResourceName() 方法是返回为null,查看文档后发现只需配置flag就行了
父页面取不到 iframe中的元素
要获取iframe中的元素,需要建立在加载完成iframe元素的前提下:
AccessibilityService重新整理:微信自动抢红包、微信自动向附近的人打招呼
去年写过微信抢红包插件的实现,但是今年春节的时候发现微信更新之后我自己写的插件竟然会停在开红包的页面无法继续向下执行,debug之后发现问题是在该页面通过findAccessibilityNodeInfosByViewId()方法无法获取到有效的根节点,几经查看api之后仍未有效定位到原因,遂作罢。 这几天经同事提起抢红包的事,所以今天我又找到之前的代码,想尝试下通过获取微信指定控件的ID去实现
针对appium中webview获取不到元素.如何进行来回切换从而获取h5的元素.
我们生活中的app很大一部分都是混合型的app   分别由移动端的开发人员开发的原生页面,以及h5的同学开发的h5页面进行融合.  其中有一部分的作用在于能更好的更换内容.以及维护. 下面我们就来说一说如何在原生页面遇到h5也就是android俗称的webview的时候,如何进行切换方式,来获取到元素. 现在来带大家看一下如何进行来回的切换.从而进行获取元素. 首先: 我们拿driver...
用js获取不到标签元素
用js获取不到标签元素 问题 心血来潮想写个带音效的页面,结果发现获取不到标签元素。 这么个小问题,对js生疏的我,被折磨了好久。 思路 因为html页面的加载顺序是从上往下加载,因此js的执行代码应该放在需要获取的元素之后。 注意:此时的js脚本是在audio标签之前,因此打印出来的结果为null。 当我把js移到标签之后,成功的获取到了元素。 结论 希望以后再遇到这种问题,能迅速反应过来。...
使用Ajax异步加载元素时用jQuery获取不到元素的解决方法
使用Ajax异步加载元素时用jQuery获取不到元素的解决方法 delegate() 方法为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。使用 delegate() 方法的事件处理程序适用于当前或未来的元素(比如由脚本创建的新元素)。 ...
vue渲染页面,获取不到元素
遇到的问题是 我已经通过调取后台接口拿到数据,付给全局变量,在vue里面渲染,但是当获取元素的时候得到的是空的数组1,拿到了数据2,初始化了数据3,渲染页面4,获取元素 得到的imgs是【】5,解决办法 加上this.$nextTick...
jquery使用$获取不到指定元素
具体代码如下:var id='#'+screen.timeleft var timeCountDown = $(id);然后timeCountDown一直为空,debug后发现: 原因是id中包含了 “.” 去掉之后,就找到了该元素
angularJS指令ng-repeat生成的dom元素js获取不到
用ng-repeat生成的元素用js怎么也获取不到;这个其中原由是:angular拥有自动化渲染DOM的特性,它能帮助我们专注于操作数据,而页面的渲染则由angular自身来完成。这就造成了 ng-repeat 循环完成后angular并不会告诉我们dom渲染完了;换句话说就是不知道angular渲染dom何时完成(得不到生成的元素是因为这个元素还没有渲染出来)。 也就是说要找一个方法使你知
vue中scrollTop取值无效问题
最近在写Vue中的微信公众号程序遇到个问题,div获取scrollTop始终是0 网上查询了下,大家发的都是兼容性的问题的处理......,关于DTD兼容的,这里我都试过,发现并没有用,到底问题是出现在哪里呢?后面发现dom元素选错了 ,,我有个goodList组件  在index页面的index-content盒子中渲染,先前我一直取用goodList组件的scrollTop,所以一直是零。后...
android UI自动化,用uiautomator捕捉不到屏幕元素该如何解决?
如图,环境什么的都没问题,我都弄好了。关键一步是捕捉不到控件元素,虚拟机版本我4.1以上的都有试过,产品现在还没开发完,但是整体的模型出来了,app是用Unity开发的,问公司开发开发也不知道怎么回事,困扰了一个星期了,求大神解答这个app能不能做自动化。...
关于解决JQuery无法获取初始化时js生成的html标签
今天遇到这个问题,页面的一些div需要由js生成,而后需要对生成的div做一些赋值操作;问题是,这些js拼接的div,必须被渲染好之后,才能有JQuery选择器获取; 解决:利用setTimeout方法,该方法与页面初始化时不冲突的,可以指定多长时间后再执行该方法,这样就能在页面渲染完成之后,再获取这些div了。...
Android自动化之AccessibilityService模拟操作(经验总结)
有两种能实现后台运行并模拟操作安卓手机的方式,一种是使用adb命令模拟操作(参考:Android自动化之adb模拟操作(可实现按键精灵和手机输入法)),一种是AccessibilityService(参考:Android自动化之AccessibilityService模拟操作(快速集成))。 这篇笔记总结下使用AccessibilityService的一些经验。 经验总结 1、使用ecl
【10】AccessibilityService实现探探app的自动化喜欢和不喜欢+ [as 3.0如何打开层级调用uiautomatorviewer]
目前版本3.1.8  仅供学习使用!!!!!切勿用作非法用途,否则后果自负! 直接写这个东西 可能是有些唐突 因为你们可能不知道这是一个什么玩意 如果你想看过于这个Accessibility服务的一些资料 可以到 我的分类 下面去看 下面将直接进入正题 AccessibilityService 的出现原本为了帮助盲人 来那啥那啥和那啥的 没想到却被我们那啥那啥和那啥了 他使用方法需要...
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、...
使用jQuery获取template.js渲染模板渲染出的HTML元素,获取不到的问题
问题: 作为一个前端开发的初学者,最近在GitHub上找到一个前端渲染模板template,我之前用的多数是jsp中的jstl进行数据渲染。我通过ajax从后天获取数据,然后赋值给data,如图: 我的前端的数据是问卷的各个选项包括单选、多选、填空等。我想通过从后端获取的答题信息对前端的各个选项进行选择,例如: jQuery的语法:KaTeX parse error: Expected 'EO...
js style.width获取不到元素的宽度
jquery用习惯了,用width()就能获取元素的宽度,但有些时候用js获取元素宽度获取不到,document.getElementById(&quot;id&quot;).style.width,原因:1.元素未设置宽度值2.元素设置了宽度值,但,设置在内联或外联样式表中,而非内嵌式的。虽然这种方式获取不到元素宽度,但是可以设置宽度 document.getElementById(&quot;id&quot;).style.widt...
关于appium在安卓端弹层无法获取元素.
                                                                                 appium+java 我们在做appiumui自动化的时候,经常会遇到一些弹层类的页面. 但是抓取页面元素的时候,经常只能抓到弹窗弹起前的元素. 弹窗的元素直接就被穿透了. 现在我们找到开发. 让开发在他们绑定布局的地方. 这...
AccessibilityService辅助类用法(Android 中的另类钩子)
说在前面的话为什么会把AccesiibilistyService叫做Android 中的另类钩子呢?搞过windows的都知道,钩子的含义就是能够监听到一切你想监听的内容,而Android中的AccessibilityService也可以监听到我们需要的某些功能。用法简介AccessibilityService是一个辅助类,可以监听我们手机的焦点,窗口变化,按钮点击等等。实现它的服务需要在手机设置里
xiaocong的uiautomator有时候找不到界面元素的问题和解决
问题最近一直在用xiaocong的uiautomator做android的自动化测试,这是一个python对android uiautomator的包装,非常好用。不过最近经常出现一个问题,界面上明明有这个元素,但是xiaocong的uiautomator却无法发现,无法点击。解决经过一番折腾,我猜测解决问题的核心大概在于setCompressedLayoutHeirarchy方法。setCompr
安卓开发之基于AccessibilityService实现聊天机器人对其他应用的调起
前言前几天看到一个很有趣的应用视频“小不点”交互机器人,其中有一段是用户给它发一段文字/语音,譬如“我想在美团点一份鸡排”,然后“小不点”自动将美团应用弹出,并进行“鸡排”搜索等操作,如下图进行简化后的demo所示。当时感觉到这样子的交互方式挺有趣的,在安卓上也有一定的方案可以实现,今天就基于AccessibilityService来实现了一下。(demo中省去一些自然语言处理的应用,最近也在学习这
解决关于selenium 获取新页面元素失败的问题
当我们使用selenium 实现模拟登陆时,获取到登陆按钮元素后,直接调用它的click()方法就能实现登陆跳转,并且此时的webDriver 也是指向当前的页面,这个是没问题的,不过需要注意的是因为页面加载速度一般小于程序运行速度,所以在获取登陆后页面的元素之前,可以通过Thread.sleep()让程序睡眠一会(暂时只知道这种方法,亲测用while循环貌似不好使), 但是博主要说的重点是如
进入页面获取不到audio/video属性值问题
有时候我们不用html5自带的视频/音频的控件,需要自定义, 这个时候可能就需要用到一些audio/video属性值。我们有个业务场景需要进入页面就获取音频的总时长, 但一直无法获取到,只有和页面产生交互才能获取,折腾了一段时间,总算解决了。  当音频/视频处于加载过程中时,会依次发生以下事件: loadstart durationchange loadedmetadata loadeddata...
jq或js父元素、子元素之间页面元素的获取,以及使用后台模板遇到无法将子页面取到的值显示在弹出的页面上的问题
一、jquery 父、子页面之间页面元素的获取,方法的调用: 1. 父页面获取子页面元素:     格式:$(&quot;#iframe的ID&quot;).contents().find(&quot;#iframe中的控件ID&quot;).click();      实例:$(&quot;#ifm&quot;).contents().find(&quot;#iBtnOk&quot;).click(); // ifm 为 &amp;lt;iframe&amp;gt; 标签 id; ...
selenium中webdriver打开新页面无法获取页面元素
当我们使用selenium 抓取数据时候首先我们要明白问题出在哪里?在新打开页面,我们无法获取元素,是因为 句柄 不在当前打开页面,我们需要做的是将 句柄 移动到当前页面就ok 了我们以智联招聘为例:直接上代码# -*- coding: utf-8 -*- import scrapy import time from selenium import webdriverfrom tutorial.i
Android Accessibility(辅助功能) 安全相关问题
转载自:http://www.tuicool.com/articles/bYRZJn 对于那些由于视力、听力或其它身体原因导致不能方便使用Android智能手机的用户,Android提供了Accessibility功能和服务帮助这些用户更加简单地操作设备,包括文字转语音、触觉反馈、手势操作、轨迹球和手柄操作。开发者可以搭建自己的Accessibilit
Android利用AccessibilityService实现抢红包,微信自动回复等功能思路
AccessibilityService根据官方的介绍,是指开发者通过增加类似contentDescription的属性,从而在不修改代码的情况下,让残障人士能够获得使用体验的优化,大家可以打开AccessibilityService来试一下,点击区域,可以有语音或者触摸的提示,帮助残障人士使用App。     当然,现在AccessibilityService已经基本偏离了它设计的初衷,至少在
Android 通过AccessibilityService实现微信自动抢红包时如何过滤已抢红包
网上搜了一圈抢红包的插件,发现有很多抢红包的实现教程,基本上都是借助AccessibilityService来实现的。 而且大多说文章说的都是原理,没有结合实际需求,讲怎么过滤已抢红包的,只能实现盲目的抢红包。 因此,只好自己想办法解决如何过滤已抢红包问题了
iframe遇到的坑,如子父页面元素获取报错,iframe.contentWindow == null等等
新接触了一个用iframe的项目,入门的时候子父页面的元素获取和传值搞得我头晕脑胀,浪费了很多时间。 在此,总结下iframe的一些小知识 子页面获取父页面元素 //js //获取父页面的window window.parent //获取父页面元素 window.parent.document.getElementById(&quot;objid&quot;)...
谷歌调试工具选取元素选择不到页面的具体元素问题
z-index的问题 document的默认值是0. 一旦出现这种问题,检查下是否对大背景设置了z-index:-1; 如果设置了这个,那么所有的被设元素的内容都会在document之下,选取不到。包括不会出现链接点击、文字选取、hover等效果。
文章热词 设计制作学习 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 python获取股票价格 获取教育大数据