问答 请问 android 开发时登录运用了 ButterKnife 框架,是不是会影响 appium 获取控件

· 2018年07月05日 · 最后由 大海 回复于 2020年03月02日 · 1299 次阅读

本人小白一枚,想拿公司的 app 项目做一下自动化,一来可以锻炼自己,二来可以提高公司的质量管控效率。但是发现登录页的控件老是获取不到,开始以为是语法问题,后来发现同样的代码获取 qq 的控件可以成功,就是公司的 app 的控件获取不到。问了开发,怀疑是由于使用了 ButterKnife 框架,请问有朋友遇到这样的情况吗?应该如何获取控件?

def test_login(self):
    self.wd.implicitly_wait(10)
    list=self.wd.find_elements_by_id('com.hk.hicoo:id/et_password')
    print (len(list))

结果一直是 0.。。

最佳回复
回复

那应该没什么问题的,是不是你想要获取的时候元素还没加载出来?试试用 appium 自带的 inspector 看能不能抓取呢?

不会有影响的,ButterKnife 是帮助开发人员节省一些重复性的代码的,不会对页面布局产生影响。

共收到 6 条回复 时间 点赞

你用 uiautomatorviewer 可以获取到吗?

#2 · 2018年07月05日 Author
雨夜狂奔 回复

就是用 uiautomatorviewer 获取的 id

回复

那应该没什么问题的,是不是你想要获取的时候元素还没加载出来?试试用 appium 自带的 inspector 看能不能抓取呢?

不会有影响的,ButterKnife 是帮助开发人员节省一些重复性的代码的,不会对页面布局产生影响。

#5 · 2018年07月10日 Author
雨夜狂奔 回复

换了个手机就可以了😂

2楼 已删除

我刚刚也遇到楼上类似的问题,我们也是 ButterKnife 框架。发现在同一个 Activity 中,多个按钮通过 ID 和 XPATH,都始终无法找到定位元素。

解决方案:
对于通过 uiautomatorviewer 来找的 ID,XPATH,程序依然提示找不到元素的时候,我们需要换个思路,使用 appium inspector 来查到元素。

如下图所示:

把定位方法改为 appium inspector 中的 XPATH,重新再试,就发现可以成功找到了。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册