Ожидание определенного представления на androidviewclient

Я использую androidviewclient от dtmilano, и он отлично работает.

Мне нужно знать, как мне дождаться появления определенного вида на экране, а затем предпринять какие-либо действия?

Я использую getandroidview(), но не могу понять его правильную реализацию.

Пожалуйста, помогите мне в этом.


person Kshitij Sharma    schedule 08.09.2014    source источник


Ответы (1)


Самый простой способ:

...
while True:
    vc.dump()
    if vc.findViewWithText('Hello World!'):
        # do something
        pass
    else:
        time.sleep(5)
person Diego Torres Milano    schedule 08.09.2014
comment
com.dtmilano.android.viewclient.ViewNotFoundException: не удалось найти View с ID='com.login:id/next_button' в дереве с root=ROOT Я получаю эту ошибку. КАК решить? - person Kshitij Sharma; 10.09.2014
comment
И это должно быть vc.findViewWithText(), а не просто findViewWithText(). Хотя я использовал vc.findViewByIdOrRaise() - person Kshitij Sharma; 10.09.2014
comment
Если вы попросите его создать исключение, если оно не найдено, оно вызовет исключение, в таком случае вы можете использовать try/except. - person Diego Torres Milano; 10.09.2014
comment
Я новичок в python, можете ли вы отредактировать приведенный выше код именно так, чтобы я мог его использовать. - person Kshitij Sharma; 10.09.2014
comment
Готово. Код должен работать. Если вы столкнулись с какой-либо проблемой, просто покажите сообщение об ошибке. - person Diego Torres Milano; 10.09.2014
comment
поднять ViewNotFoundException (ID, viewId, root) com.dtmilano.android.viewclient.ViewNotFoundException: не удалось найти представление с идентификатором = 'com.login:id/next_button' в дереве с корнем = ROOT Все еще возникает эта ошибка - person Kshitij Sharma; 11.09.2014
comment
Код: while True: vc.dump(window='-1') if vc.findViewByIdOrRaise(com.login:id/next_button): login___id_next_button = vc.findViewByIdOrRaise(com.login:id/next_button) login___id_next_button.touch() передать еще: time.sleep(3) - person Kshitij Sharma; 11.09.2014
comment
Как я упоминал ранее, если вы не хотите, чтобы метод вызывал исключения, не используйте версии ...OrRaise(). - person Diego Torres Milano; 11.09.2014
comment
Я просто должен использовать vc.findViewbyID() тогда? Есть ли так называемый метод? - person Kshitij Sharma; 11.09.2014
comment
Да, есть, просто проверьте источник, если хотите узнать, какие еще методы доступны. - person Diego Torres Milano; 11.09.2014