2013-02-26 5 views
0

Это экран Альянсы моего текущего проекта:Android: Python: AndroidViewClient Noob Trouble

ActAlliances

..и это вид считывания с помощью monkeyrunner dump.py:

android.widget.FrameLayout id/no_id/1 
    android.widget.LinearLayout id/no_id/2 
     android.widget.FrameLayout id/no_id/3 
     android.view.View id/no_id/4 
      android.widget.FrameLayout id/no_id/5 
       android.widget.ImageView id/no_id/6 
       android.widget.ImageView id/no_id/7 
      android.widget.LinearLayout id/no_id/8 
       android.widget.LinearLayout id/no_id/9 
        android.widget.TextView id/no_id/10 Alliances 
      android.widget.LinearLayout id/no_id/11 
       android.widget.TextView id/no_id/12 
       android.widget.TextView id/no_id/13 
     android.widget.FrameLayout id/no_id/14 
     android.widget.TableLayout id/no_id/15 
      android.widget.TableRow id/no_id/16 
       android.widget.TextView id/no_id/17 Sector: NULL SECTOR 
      android.widget.TableRow id/no_id/18 
       android.widget.TextView id/no_id/19 Number of Alliances: 
       android.widget.TextView id/no_id/20 1 
      android.widget.TableRow id/no_id/21 
       android.widget.TextView id/no_id/22 Row Name Power 
      android.widget.TableRow id/no_id/23 
       android.widget.ListView id/no_id/24 
        android.widget.RelativeLayout id/no_id/25 
        android.widget.TextView id/no_id/26 1 
        android.widget.TextView id/no_id/27 NULL ALLIANCE 
        android.widget.TextView id/no_id/28 Neutral 
        android.widget.TextView id/no_id/29 10000 

Следующая строка из моего avc_addallc.py нажимает кнопку New («+») в ActionBar:

add = vc.findViewById('id/no_id/12').touch() 

... который затем вызывает диалог AddAlliance:

Add Alliance Dialog

... со следующим видом отсчетом:

android.widget.FrameLayout id/no_id/1 
    android.widget.FrameLayout id/no_id/2 
     android.widget.FrameLayout id/no_id/3 
     android.widget.LinearLayout id/no_id/4 
      android.widget.LinearLayout id/no_id/5 
       android.widget.LinearLayout id/no_id/6 
        android.widget.TextView id/no_id/7 New Alliance 
       android.view.View id/no_id/8 
      android.widget.FrameLayout id/no_id/9 
       android.widget.FrameLayout id/no_id/10 
        android.widget.ScrollView id/no_id/11 
        android.widget.RelativeLayout id/no_id/12 
         android.widget.TextView id/no_id/13 Sector: Helix 
         android.widget.TextView id/no_id/14 Alliance: 
         android.widget.EditText id/no_id/15 Alliance_Name 
         android.widget.TextView id/no_id/16 Leader: 
         android.widget.EditText id/no_id/17 Leader 
         android.widget.TextView id/no_id/18 Political Relation: 
         android.widget.Spinner id/no_id/19 
          android.widget.TextView id/no_id/20 Ally 
         android.widget.TextView id/no_id/21 Rank: Power: 
         android.widget.EditText id/no_id/22 2500 
         android.widget.EditText id/no_id/23 1234567 
         android.widget.TextView id/no_id/24 No. Players:  Map Score: 
         android.widget.EditText id/no_id/25 100 
         android.widget.EditText id/no_id/26 123456789 
         android.widget.TextView id/no_id/27 No. Bases 
         android.widget.EditText id/no_id/28 8000 
      android.widget.LinearLayout id/no_id/29 
       android.widget.LinearLayout id/no_id/30 
        android.widget.Button id/no_id/31 Cancel 
        android.widget.Button id/no_id/32 Save 

Очень следующая строка в моей avc_addallc.py следует поместить текст первый EditText (Alliance_Name):

etAllc = vc.findViewById('id/no_id/15').type('Legion of Anarchy') 

, который не делает ничего, но возвращает эту ошибку:

130225 21:31:13.023:I [MainThread] [com.android.chimpchat.ChimpManager] Monkey Command: touch down 354 74. 
130225 21:31:13.107:I [MainThread] [com.android.chimpchat.ChimpManager] Monkey Command: touch up 364 84. 
130225 21:31:16.223:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions] Script terminated due to an exception 
130225 21:31:16.223:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions]Traceback (most recent call last): 
    File "c:\code\avc_addallc.py", line 44, in <module> 
     etAllc = vc.findViewById('id/no_id/15').type('Legion of Anarchy') 
    File "C:\adt-bundle-windows-x86\AndroidViewClient\src\com\dtmilano\android\viewclient.py", line 275, in __getattr__ 
     raise AttributeError, name 
     AttributeError: type 

Где я ошибался? Благодаря!

ответ

0

Прежде всего, убедитесь, что используете AndroidViewClient> = 2.3.8. В предыдущих версиях вам нужно отправлять строки с пробелами по-разному.

Затем разделить линию

etAllc = vc.findViewById('id/no_id/15').type('Legion of Anarchy') 

в

etAllc = vc.findViewByIdOrRaise('id/no_id/15') 
etAllc.type('Legion of Anarchy') 

, который я предполагаю, это ваше намерение. В противном случае etAllc будет всегда None.

+0

Спасибо за внимание к этому вопросу ... Версия i have 2.3.7, которую я загрузил только вчера из https://github.com/dtmilano/AndroidViewClient Как получить 2.3.8 Обновить? В противном случае я был бы рад внести изменения в пробелы/цитаты. – Quasaur

+0

Я скачал последний коммит (2.3.8) для viewclient.py ... Я получаю ту же ошибку, но теперь для линии: etAllc.type («Легион Анархии») .. внести изменения, которые вы предложили ранее. – Quasaur

+0

Понимая, что я просил много диалогового окна, я сделал 2-й экран своей собственной деятельностью. Итак, теперь нужно выбрать «Новое» из активности альянсов, после чего в действие AddNewAllc появляется форма. Что мне нужно сделать для скрипта Python avc_addallc.py для распознавания нового действия и размещения данных в форме (процесс, который необходимо повторить 8 раз)? – Quasaur