我正在尝试使用 androidviewclient 获取 Checkbox 的状态
lock = vc.findViewWithText('Lock SIM card')
if (lock.isChecked()):
print "Enabled"
else:
print "Disabled"
这总是返回 False 。
谁能告诉我如何获取复选框的状态
我正在尝试使用 androidviewclient 获取 Checkbox 的状态
lock = vc.findViewWithText('Lock SIM card')
if (lock.isChecked()):
print "Enabled"
else:
print "Disabled"
这总是返回 False 。
谁能告诉我如何获取复选框的状态
那是因为 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+。
这可能有效:
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...'