Closed pkilller closed 6 months ago
测试代码:
import uiautomator2 as u2 import time d = u2.connect() container = d.xpath('//*[@resource-id="com.google.android.apps.messaging:id/list_empty_view"]') print("Container: " + str(container)) child = container.child('//*[@resource-id="com.google.android.apps.messaging:id/empty_image_hint"]') # 这句调用后,container中的xpath表达式被修改了 print("Child : " + str(child)) print("Container: " + str(container))
输出结果:
Container: XPathSelector(//*[@resource-id="com.google.android.apps.messaging:id/list_empty_view"] Child : XPathSelector(//*[@resource-id="com.google.android.apps.messaging:id/list_empty_view"]//*[@resource-id="com.google.android.apps.messaging:id/empty_image_hint"] Container: XPathSelector(//*[@resource-id="com.google.android.apps.messaging:id/list_empty_view"]//*[@resource-id="com.google.android.apps.messaging:id/empty_image_hint"]
总结: 按照我的理解,child()被调用后,应该产生一个新的隔离对象,不影响原来的container才合理。我目前只能在使用玩child()后,重新获取container来临时过渡。
感谢大佬们抽空处理!
这确实是个问题
https://github.com/openatx/uiautomator2/commit/4b849e5aedfd2d69c342518d5588c9dfdcc770aa
4b849e5
感谢大佬!
测试代码:
输出结果:
总结: 按照我的理解,child()被调用后,应该产生一个新的隔离对象,不影响原来的container才合理。我目前只能在使用玩child()后,重新获取container来临时过渡。
感谢大佬们抽空处理!