如何获取复选框的状态

时间:2013-10-22 06:06:53

标签: android python-2.7 androidviewclient

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

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

这总是返回False。

任何人都可以告诉我如何获取复选框的状态

3 个答案:

答案 0 :(得分:1)

那是因为锁不是ckeckbox。锁定是包含“锁定SIM卡”的文本视图。 您需要使用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 +。

答案 1 :(得分:0)

This Link Has what you want 上面的示例将向您展示如何获取所选复选框的状态。看看吧。

答案 2 :(得分: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...'