如何使用带有ruby的appium获取android中元素的content-desc属性

时间:2017-12-21 10:54:36

标签: android ruby appium

我正在尝试使用

获取元素的content-desc属性
@driver.find_element(:xpath, "//android.widget.TextView[@text='Automation']").attribute("content-desc")

但是收到此错误

  

[debug] [MJSONWP]用args调用AppiumDriver.getAttribute():   [" xpath"," 19"," f0ea41e6-dfee-4b9b-b756-0b204863d0d4"]

     

[debug] [AndroidBootstrap]向android发送命令:   {" CMD":"动作""动作":"元素:的getAttribute"" PARAMS":{& #34;属性":"内容递减"" elementId":" 19"}}

     

[AndroidBootstrap] [BOOTSTRAP LOG] [debug]从客户端获取数据:   {" CMD":"动作""动作":"元素:的getAttribute"" PARAMS":{& #34;属性":"内容递减"" elementId":" 19"}}

     

[AndroidBootstrap] [BOOTSTRAP LOG] [debug]获得类型ACTION的命令

     

[AndroidBootstrap] [BOOTSTRAP LOG] [debug]得到命令动作:   的getAttribute   [AndroidBootstrap] [BOOTSTRAP LOG] [debug]返回   结果:{" status":7," value":"此元素没有   '内容递减'属性"}

我已经通过appium UI检查了content-desc属性是否存在,我的代码有什么问题吗?它有替代品吗?

2 个答案:

答案 0 :(得分:0)

在python中(我猜Ruby会类似)我这样做:

Python代码

webElement = driver.find_element(By.XPATH, "//android.widget.TextView[@text='Automation']")
content-desc = webElement.get_attribute("content-desc")
print(content-desc)

此webElement.get_attribute(attr)适用于@ text,@ check,@ enable,@ select,@ name,@ value ......

但无论如何......你发布了这条消息未找到元素的地方:

  

[AndroidBootstrap] [BOOTSTRAP LOG] [debug]返回结果:{“status”:7,“value”:“此元素没有'content-desc'属性”}

所以也许你的XPATH不正确,你选择了一个错误的元素...... 如果这对您不起作用,您必须发布Appium Inspector的图像才能帮助您

答案 1 :(得分:0)

尝试使用getAttribute(“ contentDescription”)