【问题标题】:AttributeError: 'str' object has no attribute 'text' errorAttributeError:“str”对象没有属性“text”错误
【发布时间】:2021-09-13 16:09:39
【问题描述】:

得到: AttributeError: 'str' object has no attribute 'text' 错误如下:

 `version = driver.find_element_by_id('com.project.PROJECT:id/version').text
  print(version)
  for i in version:
     if 'Version : 1.2.0.133' == str(i):
         print('Step 46. NAS version is displayed correctly - PASS')
     else:
          print('Step 46. NAS version is incorrect - Fail')
 time.sleep(2)
 pass`

也试过了:if 'Version : 1.2.0.133' == i.text

还是不行。

print(version) 正在返回正确的值:版本:1.2.0.133

但我无法打印if value is true: print('Step 46. NAS version is displayed correctly - PASS')

else print FAIL value向我发送垃圾邮件

另外,如果我使用.text 进行 EC 等待也会返回错误。

谢谢

【问题讨论】:

    标签: python android selenium attributes webdriver


    【解决方案1】:

    我相信你的version 变量是一个字符串,所以当你写的时候

    for i in version:
         if 'Version : 1.2.0.133' == str(i):
             print('Step 46. NAS version is displayed correctly - PASS')
         else:
              print('Step 46. NAS version is incorrect - Fail')
    

    您实际上是在遍历字符串中的每个字符。所以str(i) 将是一个永远不会等于“版本:1.2.0.133”的字符,所以你总是陷入 else 语句,打印“第 46 步。NAS 版本不正确 - 失败”。这就是为什么您会在循环中收到该消息。至于您的问题标题中提到的错误,我对问题所在感到困惑,因为您说print(version) 返回了正确的值。

    【讨论】:

    • 谢谢!这是有道理的!
    • @Claudaette 您应该通过将正确答案标记为已接受的答案来获得分数。只是说
    • 嘿@gtxtreme 我是新来的,我不能投票给答案。在判断之前,请询问我将另一个答案标记为 A FIX,因为这是解决我问题的答案......请在发表评论之前再次阅读。谢谢!
    • 建议是将答案标记为正确,不一定是这个,也不是赞成,这是一个建议
    【解决方案2】:

    我相信driver.find_element_by_id('com.project.PROJECT:id/version') 返回一个str 对象,它没有.text 属性。尝试从代码的第一行中删除 .text

    【讨论】:

    • 我添加了.text 来打印值(它有效),但它不适用于迭代。我删除了.text 并将迭代保持原样并且正在工作。谢谢
    猜你喜欢
    • 2018-09-10
    • 1970-01-01
    • 2018-04-06
    • 2023-04-07
    • 2018-03-15
    • 1970-01-01
    • 2023-03-05
    • 2020-09-28
    • 1970-01-01
    相关资源
    最近更新 更多