首页 > 代码库 > appium查找元素心得

appium查找元素心得

在使用appium测试app的时候并没有selenium那么好用,为什么呢?

个人觉得是因为定位方式太少,selenium中的xpath已经强大到基本可以找到任何一个元素。

但是在appium中xpath并不好用,而且经常是很长一串的,效果不好。基本都用resource_id来定位,那么问题来了,没有resource_id怎么办,用content-desc,这是个帮助盲人使用的东西,可以使用find_element_by_accessibility_id来定位,那么问题又来了如果这个content-desc里面有空格换行符什么的怎么办?如何用类似xpath中的contains的东西来定位呢?这里有个思路,通过class_name来查找包含要找的元素的一个组,通过遍历每个元素,判断元素的get_attribute(‘name‘)中是否包含关键词来确定是否是我们要找的元素。

elements = driver.find_elements_by_class_name(‘xxx‘):

for element in elements:

  if key in element.get_attribute(‘name‘):

    print ‘element find‘

但是有个问题必须说明下get_attribute(‘name‘)有可能返回content-desc也有可能返回text,一般来说如果没有content-desc的话会返回text

appium查找元素心得