Appium 请大佬解惑,万分感谢! 使用 Appium 自动化出现:appium AttributeError: 'NoneType' object has no attribute 'click'

Jamie · 2022年04月06日 · 最后由 微凉 回复于 2022年04月13日 · 5329 次阅读

![](/uploads/photo/2022/a69748d6-ea19-4e77-b3e5-940b3e41a8a9.png!large)

共收到 8 条回复 时间 点赞

这个 element 没找到,就是 nonetype object

没找到这个 button

但是我 try 了一下 应该是找到了这个元素

加上.click()就会报这个错误

Jamie 回复

建议你先确认下,你这个 find_element_by_class 方法,找不到元素是不是会抛出 NoSuchElementException ?还是只是返回个 None ?如果是后者,那这个 try catch 就是无效的。

在 appium python client 里没找到 driver 对象有 find_element_by_class 的方法,所以无法确认。

陈恒捷 回复

不会抛异常 没有返回 然后试了下 用 find_element_by_id(“”).click() 的 方法 还是报同样的错 , 最后测试跳过这个元素,操作点击其他的元素的时候同样也会报这个错误 ,请大佬帮忙排查下 万分感谢

Jamie 回复

额,排查说不上,只能说给些思路参考。

你这里报错的原因上面已经有同学说得很清楚了,原因是 find_element_by_class('android.widget.button') 没找到元素,所以返回的内容是 None 。一个 None 类型的对象,是没有 click() 方法的,所以才会出现你正文里的报错。

相当于你直接运行 None.click() 这段代码,这样会报正文里的错,应该显而易见吧。

然后你说的 最后测试跳过这个元素,操作点击其他的元素的时候同样也会报这个错误 ,没看懂你这里跳过是什么意思,请把你改动后的代码以及错误信息都贴上来吧(请不要截图,直接贴文字,截图看得好累。。。)

你这个 find_elment_by_xxx 是二次封装吗? 正常不是 find_element_by_id 吗?

看一下 这个页面是不是不止这一个 class 的元素,可能是获取的元素不支持点击

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