2013-05-09 38 views
0

我想切换使用AndroidviewClient的蓝牙。以下是代码的一部分。我能够“找到蓝牙”并获得ID和文本。然后我想获得ON/OFF切换的视图。当我在下面的for循环中打印时,我得到3个视图,其中一个视图是基于当前状态的ON或OFF视图。如何检查这个视图的for循环来切换它? 感谢您的帮助,如何使用androidviewclient切换蓝牙

BR 作者Srini

view = vc.findViewWithText('Bluetooth') 
print "Bluetooth id :", view.getId() 
print "Blutooth Text :", view.getText() 

for i in view.parent.parent.children: 
    print str(i) 

回答

1

的解决方案是让“蓝牙”查看祖父母,然后在该子树搜索切换按钮。 要找到在这种情况下,我们使用模式“ON | OFF”的视图,所以也无所谓了状态切换这是我们的目标:

parent = vc.findViewWithTextOrRaise('Bluetooth').getParent().getParent() 
vc.findViewWithTextOrRaise(re.compile('ON|OFF'), root=parent).touch() 

这可能是最好的解决方案。然而,还有一种替代方案可能也适合您的需求,并且更容易获得。

运行culebra生成脚本模板:

$ culebra -i off -t on -d on -C -j on -o ~/tmp/bluetooth.py 

那么,你在剧本像看(可能取决于API级别和设备):

# class=android.widget.TextView text="Bluetooth" 
no_id26 = vc.findViewWithTextOrRaise('Bluetooth') 

# class=android.widget.Switch text="OFF" 
no_id27 = vc.findViewWithTextOrRaise('OFF') 

所以,如果你只是追加

no_id27.touch() 

到脚本它会切换蓝牙每次运行它。

+0

非常感谢。我没有尝试库莱布拉,但第一次消化吸收效果很好。 – user2344495 2013-05-10 18:41:06