【问题标题】:Android Appium Python - element.get_attribute('text') returns no textAndroid Appium Python - element.get_attribute('text') 不返回文本
【发布时间】:2016-10-06 07:55:47
【问题描述】:

我尝试在混合应用中获取元素的文本属性。

def test_example(driver):
   el = driver.find_element_by_id('com.access_company.twine.android.dmc:id/btnVideos')

   print el.get_attribute("text")

所以有一个带有视频图标和文本“视频”的按钮。不幸的是,上面的代码没有打印任何东西。 所以我尝试了这个:

 print el.get_attribute("resourceId")

令人惊讶的是,它有效。那么我在这里错过了什么或做错了什么?希望有人可以提供帮助。

UIAutomator

问候

【问题讨论】:

  • 您确定查询时此按钮中确实有文字吗?文本是否设置在代码的其他位置(不是在 XML 布局中)?
  • 是的,我刚刚附上了 uiautomator 的截图。在那里你可以看到文本存在。我无法访问源代码,但可以询问开发人员是否使用不同的方法设置了文本。但我认为当 uiautomator 在文本字段中显示文本时这并不重要?
  • 这可能是时间问题,可能是 appium 在设置之前抓取了文本。 (只是推测,在这里,我不确定appium如何抓取文本以及您的测试代码何时执行)
  • 感谢您的建议。在我搜索元素之前和我找到它之后,我设置了 30 秒的睡眠时间。还是不行

标签: android python testing automation appium


【解决方案1】:

对于所述元素的文本,请尝试以下代码:

el = driver.find_element_by_id('com.access_company.twine.android.dmc:id/btnVideos')
print el.text

另外el.get_attribute("resourceId") 最好返回“btnVideos”

【讨论】:

    【解决方案2】:

    好的。在调查了更多时间后,我找到了解决方案,我现在感觉很愚蠢。有一个按钮,但这是不可点击的,所以我使用的 id 实际上不是带有文本的按钮,而是父级,它是一个没有文本的相对布局。呃..顺便说一句,resourceId 不仅返回“btnVideos”,而是返回完整的 id。感谢您的帮助。

    【讨论】:

      猜你喜欢
      • 2019-03-07
      • 1970-01-01
      • 2019-07-19
      • 1970-01-01
      • 1970-01-01
      • 2019-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多