appium 提示报错“TypeError: 'unicode' object is not callable”的解决方式!

这里提到的这个报错,是小错误且容易经常会犯,有时需要特别注意使用。

目的要求结果:根据某个元素的id值获取到对应id的text值,并且将获取的text值与本身存在的text值做比较,查看text值是否相等,这在自动化测试过程中经常会存在的做法,主要用作测试之后的检查,查看是否自动化执行到某一个步骤成功,因此通过id获取到text的前提条件是“此id对应的text必须存在值”,如下截图所示,只有id与text同时存在,才可以获取到text值,否则失败。

  

 

错误代码如下:

self.log.info("check_search_message........检查搜索短信")
        sleep(2)
        a = self.device.find_element_by_id("com.android.mms:id/action_compose_new").text()
        self.log.info(type(a))    
        self.log.info(a)
        if a == u'新建信息':
            self.log.info('新建信息判定成功!')
        else:
            self.log.info('新建信息判定失败!')

  

  以上的写法,运行将会出现报错“TypeError: 'unicode' object is not callable”,错误的原因:self.device.find_element_by_id("com.android.mms:id/action_compose_new").text()中的text()不是一个函数,而是一个属性,因为通过@property能把python中定义的函数,当做属性访问从而提供友好的访问方式,来看appium的底层方法,如下图:

  

改正点:

  去掉text后的括号,正确的为:self.device.find_element_by_id("com.android.mms:id/action_compose_new").text,以此text当做属性来访问,也被自己的给蠢哭了

 

欢迎加入微信群一起学习:

 

转载于:https://www.cnblogs.com/syw20170419/p/7018944.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值