appium的find_element和find_elements方法,性能上有什么区别了?

在练习app企业微信实战,获取toast信息,遇到了一个问题。当我用find_elements抓取toast时,每次都失败,但是换成find_element后,每次都获取成功了。希望有同学或老师解答下find_elements和find_element,在获取元素的性能方面有什么区别吗?

  1. find_element定位的是某个元素
  2. find_elements定位的是一组元素

find_elements 返回的一组元素数据的列表,如果只需要找一个元素的话用find_element 就够了

我知道这个区别,但是我搞不懂,为啥用find_elements定位toast返回空列表,但是用find_element又定位到了toast元素

如果只是返回结果得不同的话,那么find_element定位到得元素,换成find_elements却只是返回一个空列表了,应该也有数据啊。关键Toast是出现1秒中就消失得元素

find_element():

  • 仅查找返回页面符合条件的第一个元素
  • 如果定位不到元素会报错

find_elements():

  • 是查找多个元素并且返回一个列表
  • 如果定位不到元素不会报错,返回一个空列表

这是他们的区别和各自特点哈。

可能我没描述清楚,这是我得github:


谢谢你的耐心解答

你看我的理解对不对,要满足find elments括号里面的条件,就必须是要有两个以上(因为是有复数)相同的这个toast存在,才会正确地返回index是第一个的元素,这里如果toast只出现有且只有一个,那find elements的程序判断就是没有找到这“一组”的元素,所以返回了空列表,不知道我这样说你能不能理解哈

厉害啊,老哥,如果是这样就合理了。这是从源码中分析出来的吗

源码加我的理解哈,不一定非常准确,你可以去看看源码和找找相关资料也解读一下哈

1 Like