app自动化,怎么获取页面所有元素和元素属性信息

各位大佬好!目前有2个问题
1、app自动化:列表的操作中有需要判断两个元素上下级关系,比如B元素是A元素的子节点,下面图片是案例


B节点是一个icon,没有其他信息可以利用,而且业务逻辑需要判断B节点是A节点的子节点
这类的怎么验证?
2、自动化进入一个页面,怎么获取这个页面所有元素和元素的属性

1、定位到A,然后A/android/widget.imageView 先定位到a,然后找他的子元素,看有没有图片
2、打印 driver.page_source

就是不知道用什么方法能找到子元素,appium什么方法能获取子元素信息?

明白你的意思了,把A元素的定位信息,和B节点的拼接到一起,然后验证B节点是否存在。我昨天就是这样实现的,有其他比较方便的方法吗?appium有这类的方法吗?

app里的定位也就是去id,text和class,如果B节点不能直接定位到,那只能通过父子关系定位了吧。看样子你这里也不是webview的组件,只能用原生定位了

能直接定位到,我现在不是要直接定位到,是要判断B节点是A节点的字节点

直接·用xpath 不就能测出来了
A/B 如果能定位到,那就是可以判断B是A的子节点了。

什么意思?
driver.find_element(“A节点”).find_element(“B节点”)能定位到?

在 xpath 和 css 语法中都有表示父子关系的语法,如果通过相关的语法表达式能找到对应结果就证明他们是父子关系。如果通过父子的语法表达式找不到对应的结果就证明他们没有父子关系。这是反证法,图中的xpath 表达式的意思就是在找 grandfather 的子节点中, class 为 pos father 的节点。

关闭