测试积点老人 发表于 2021-4-20 13:45:22

appium弹窗定位不到元素,卡在那里是什么原因?

在进行一个APP测试时,用xpath循环定位一组元素。e=driver.find_elements_by_xpath("//*")
开始能定位到元素,在同一个页面出现弹窗并自动消失后,就定位不到元素了。在出现弹窗时能,定位返回的结果为空"[ ]",之后再定位就卡住了。感觉后续的查找都在查找弹窗的内容,当相同的弹窗再出现时,能定位。返回的结果还是空"[ ]"。如果不出现那个弹窗,定位就一直等待弹窗出现,不会定位当前页面的xpath。
初步解决方案:①:在cap中添加 "automationName": "uiautomator2".这样能解决弹窗出现后一直卡住定位不到当前页面的问题。但是现在一直困扰我的问题是:用了这种方法,执行TouchAction(driver).press(x=300,y=1500). move_to(x=300,y=1200).move_to(x=300,y=1000).move_to(x=300,y=500).release().perform()时两个动作之间会有停顿,比如两个move_to动作之间会有0.7秒左右的延时。请大家尝试。我需要一个连贯的滑动动作,却变成一卡一顿的完成滑动动作。(请大神帮忙解决这个问题)(温馨提示:看了一下swipe的实现,原理也是TouchAction,但是swipe不会出现上述卡顿的问题。不完善,希望大神研究。)
②:当上面那个弹窗出现定位不到元素问题出现以后,把APP置于后台再启动回到需要定位的界面就能定位到需要xpath定位的元素。driver.background_app(1),但是这样不太方便啊,不能每次出现都置于后台吧!希望能帮忙解决,感激不尽!

qqq911 发表于 2021-4-21 12:32:02

换种定位方式

郭小贱 发表于 2021-4-21 13:16:52

https://www.zhihu.com/question/325600556可以参考这篇文章看看。

jingzizx 发表于 2021-4-21 19:51:11

没找到?

Miss_love 发表于 2021-5-31 18:55:27

试试其他定位方式
页: [1]
查看完整版本: appium弹窗定位不到元素,卡在那里是什么原因?