0

我正在尝试使用 androidviewclient 获取 Checkbox 的状态

lock = vc.findViewWithText('Lock SIM card')
if (lock.isChecked()):
    print "Enabled"
else:
    print "Disabled"

这总是返回 False 。

谁能告诉我如何获取复选框的状态

4

2 回答 2

1

那是因为 lock 不是复选框。Lock 是包含“Lock SIM card”的文本视图。您需要使用 hierarchyviewer 或 uiautomatorviewer 来查看 UI 的布局。

UI 看起来像:

(0) Linear layout
    (1) Relative layout
        (0) TextView "Lock SIM card"
        (1) TextView "Require PIN to use phone"
    (2) Linear layout
        (0) CheckBox

因此,您需要执行以下操作:

linear_layout = lock.parent.parent
check_box = linear_layout.children[2].children[0]

这不是直截了当的,但我过去使用过它并且工作过。请注意,我使用的 ViewClient 版本是 2.3。现在它已经发展到4+。

于 2013-10-22T12:28:49.393 回答
0

这可能有效:

 vc.dump()
 lock = vc.findViewWithText('Lock SIM card').getParent().getChildren()                                                                                                                                                   [2].getChecked()
    if lock != True:
       print 'Lock SIM card not enabled...'
       vc.dump()
       vc.findViewWithText('Lock SIM card').touch()
    else:
       print 'Lock SIM card already enabled...'
于 2016-07-11T11:57:41.307 回答