环境配置

appium 版本:1.4
appium-python-client: 采用 pip install --upgrade appium-python-client 更新到最新
windows7

程序界面示例

上图所示,listview 中除英文字母外,每一行的 layout id 都是 com.browan.freeppmobile.android:id/Layout_ContactListItem
右边为一 Button 组件

功能要求

为了验证右边到底是 freep 文字 还是空白

验证代码逻辑如下

els = driver.find_elements_by_id('com.browan.freeppmobile.android:id/Layout_ContactListItem')#获取所有可见行数据
try:
    els[0].find_element_by_name('A0_test') # 查找是否存在A0_test的行
    button = els[0].find_element_by_class_name('android.widget.Button') #在所在行寻找button组件
    self.assertFalse(button.is_displayed()) # 是否显示
except:
    self.assertTrue(False)

代码运行情况如下:

  1. 逻辑上应该找不到 button 才对,实际上找到了
  2. appium 中的查找元素,支持在其子集中查找元素? 如目前代码所示,在 A0_test 所在行,查找 button
  3. 还是说 els[0].find_element_by_class_name 与 driver.find_element_by_class_name,实际是一样的效果


↙↙↙阅读原文可查看相关链接,并与作者交流