lamda icon indicating copy to clipboard operation
lamda copied to clipboard

sibling方法选取的结果不仅是同级的,还包括了次级的(即child级的)

Open Rishon33 opened this issue 7 months ago • 5 comments

Image在查找”去领取“的同级时,使用sibling()会包括进次级的所有元素,用sibling().count()方法会显示包括次级的总数量,希望sibling()能只包含同级元素。 比如:如图,“去领取”的同级应该只有3个元素(含自己),但.count()显示有7个,如果用sibling(index=1),则.count()显示2,包括了次级的一个index=1的元素。

Rishon33 avatar May 19 '25 08:05 Rishon33

child(className="android.widget.FrameLayout",index=1 方式点不了第二项列表

Image Image Image

还有个问题是 get 获取不了大一等于1的子节点

Image

列表元素目前我都无法遍历,大佬可以完善一下元素遍历的文档吗

windzhu0514 avatar Aug 06 '25 07:08 windzhu0514

大佬,问题解决了吗,我也没找到正确遍历子元素的方法,可以给出一个思路吗

leo-lu avatar Aug 11 '25 03:08 leo-lu

@rev1si0n 大佬可以完善一下文档或者给一些例子参考一下,其他的地方用起来都很棒。lamda 服务端的代码我们看不到,没法提交代码做贡献

windzhu0514 avatar Aug 12 '25 01:08 windzhu0514

如果这样写出了问题的话那确定了是个 BUG,for i in d(resourceId="com.ss.android.ugc.aweme:id/cj").child(className="android.widget.FrameLayout"): i.screenshot().save(f"{uuid4()}.jpg")

你可以这么写临时替代(递增 child 的 instance 值),从 d(resourceId="com.ss.android.ugc.aweme:id/cj").child(className="android.widget.FrameLayout").count() 取最大可递增的值,d(resourceId="com.ss.android.ugc.aweme:id/cj").child(className="android.widget.FrameLayout", instance=3).screenshot().save("element.png")

rev1si0n avatar Aug 12 '25 02:08 rev1si0n

第一种:代码里或者远程桌面用 for 遍历和用 get(1) 都会报找不到元素 lamda.exceptions.UiObjectNotFoundException: UiSelector[CLASS=androidx.recyclerview.widget.RecyclerView, INSTANCE=1, CHILD=UiSelector[CLASS=android.widget.FrameLayou]]

第二种:使用 instance=3 的方式可以用

第三种:使用 index=3 有的遍历可以用,有的也是报找不到元素 @Rishon33

windzhu0514 avatar Aug 12 '25 06:08 windzhu0514