2013-05-09 82 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