2016-06-21 105 views
0

是否有某種方法可以將轉儲存儲在字典中,並在以後使用這些轉儲以便每次都不必重新計算轉儲?這是一個更概念問題的證明,因爲我正在尋找一種方法來加速androidviewclient的緩慢轉儲過程,並以任何方式使腳本更快。例如,AVC返回到我的腳本步驟之間的主屏幕,但需要在重新提煉(u'''''''''')按鈕幾次之前再次轉儲。androidviewclient:存儲視圖客戶端轉儲

這是有問題的,因爲它會產生不必要的等待時間,因爲我的腳本嘗試儘快配置設備的設置並啓動應用程序。我想創建一次主屏幕轉儲,存儲它,並返回到我存儲的轉儲,以在步驟之間單擊(u'「'應用程序''')按鈕,或者使用其他方法創建更快腳本。如果這是不可能的,我想知道其他腳本編寫軟件比AVC更快地工作,而不犧牲有效性,因爲我喜歡與查找視圖/按鈕的一致性,並且重寫我的功能緩慢的腳本是沒有問題的。

到目前爲止,我已搜查,一無所獲,並試圖通過viewclient.py照看如下:

dictDump = {} 
home() #helper method that goes to the home screen 
dictDump['homeScreen'] = vc.dump() 
vc.findViewWithContentDescription(u'''Applications''').touch() 
dictDump['appScreen'] = vc.dump() 
home() 
vc.views = dictDump['homeScreen'] 
vc.findViewWithContentDescription(u'''Applications''').touch() 

我也得到:AttributeError的:「NoneType」對象有沒有屬性「觸摸」

回答

0

這是一個culebra生成的腳本,稍作修改以滿足您的要求。

#! /usr/bin/env python 
# -*- coding: utf-8 -*- 
''' 
Copyright (C) 2013-2016 Diego Torres Milano 
Created on 2016-06-21 by Culebra v11.5.9 
         __ __ __ __ 
        /\/\/\/\ 
____________________/ __\/ __\/ __\/ __\_____________________________ 
___________________/ /__/ /__/ /__/ /________________________________ 
        |/\ /\ /\ /\ \___ 
        |/ \_/ \_/ \_/ \ o \ 
              \_____/--< 
@author: Diego Torres Milano 
@author: Jennifer E. Swofford (ascii art snake) 
''' 


import re 
import sys 
import os 

from com.dtmilano.android.viewclient import ViewClient 

TAG = 'CULEBRA' 

_s = 5 
_v = '--verbose' in sys.argv 


kwargs1 = {'ignoreversioncheck': False, 'verbose': False, 'ignoresecuredevice': False} 
device, serialno = ViewClient.connectToDeviceOrExit(**kwargs1) 
kwargs2 = {'forceviewserveruse': False, 'useuiautomatorhelper': False, 'ignoreuiautomatorkilled': True, 'autodump': False, 'startviewserver': True, 'compresseddump': True} 
vc = ViewClient(device, serialno, **kwargs2) 


device.press('HOME') 
vc.dump(window=-1) 
# let's keep the reference to apps (dangerous but possible) 
apps = vc.findViewWithContentDescriptionOrRaise(u'''Apps''') 

apps.touch() 

vc.sleep(_s) 
vc.dump(window=-1) 

vc.findViewWithContentDescriptionOrRaise(u'''API Demos''').touch() 

device.press('HOME') 

# use the reference we kept 
apps.touch() 

vc.dump(window=-1) 

browser = vc.findViewWithContentDescriptionOrRaise(u'''Browser''') 
browser.touch() 

device.press('HOME') 

腳本保持參照應用和重用。 保持參考可能無法在許多其他情況下工作,但因爲它是不太可能的主屏幕或按鈕更改您可能會罰款。