51Testing软件测试论坛

标题: appium弹窗定位不到元素,卡在那里是什么原因? [打印本页]

作者: 测试积点老人    时间: 2021-4-20 13:45
标题: appium弹窗定位不到元素,卡在那里是什么原因?
在进行一个APP测试时,用xpath循环定位一组元素。e=driver.find_elements_by_xpath("//*[contains(@text,'相关推荐')]")

开始能定位到元素,在同一个页面出现弹窗并自动消失后,就定位不到元素了。
在出现弹窗时能,定位返回的结果为空"[ ]",之后再定位就卡住了。
感觉后续的查找都在查找弹窗的内容,
当相同的弹窗再出现时,能定位。返回的结果还是空"[ ]"。
如果不出现那个弹窗,定位就一直等待弹窗出现,不会定位当前页面的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
换种定位方式
作者: 郭小贱    时间: 2021-4-21 13:16
https://www.zhihu.com/question/325600556  可以参考这篇文章看看。
作者: jingzizx    时间: 2021-4-21 19:51
没找到?
作者: Miss_love    时间: 2021-5-31 18:55
试试其他定位方式




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2