在 inspect 里是可以定位到登录按钮的,但在 python 里就报错,实在是不知道为什么
加等待试试?可能界面还没加载完毕
元素没加载出来,超时了吧。
我的是 APP,我也遇到同样的问题, 弹窗的内容在同一级,没有办法区分开,求大佬分享下怎样处理比较好
//*[text()="登录"]。就可以了,你前面的标签没有任何意义,我元素定位用的多,根据关键字去精准匹配或者模糊匹配,可以解决 90% 以上的定位,不要用太对没有意义的内容
可能页面加载过程中有遮罩之类的,可以先加个固定休眠,看下具体页面加载再调整
最新发现,应该是页面的问题,切换到 webview 后打印不出页面的元素,只输出了这些不知道是什么的东西,,
android 的 AccessabilityService 是要开 webview 相关的 flag 的,默认没开是取不到的,记得当年调 RN 的 app 时,也是要把对应 flag 加上,才能取到。简单的做法是自己写个 talkback 把 flag 加上,运行 talkback 服务就能取了;一个地方加上就可以,影响所有调用 AccessabilityService 的地方
accessibilityservice.xml 中
android:accessibilityFlags="flagDefault|flagRetrieveInteractiveWindows|flagIncludeNotImportantViews|flagReportViewIds|flagRequestTouchExplorationMode|flagRequestEnhancedWebAccessibility|flagRequestFilterKeyEvents"
python 的 uiautomator 是有的,它的依赖 app 会创建 AccessabilityService 实例获取 ui 布局,你要不想从这改的话,就自己写个无功能只是开 flag 的 talkback app,启动服务就好