имитировать быстрое прокрутку с помощью adb [duplicate]

Вы можете написать Java-процедуру и скомпилировать ее и запустить в Oracle. В этой процедуре вы можете использовать:

UUID uuid = UUID.randomUUID();
return uuid.toString();

Для генерации желаемого значения.

Здесь ссылка на то, как компилировать Java-процедуры в Oracle.

2
задан DannyBoi 11 September 2016 в 06:15
поделиться

2 ответа

input - это Java-приложение, и «задержка», которую вы видите, зависит от того, сколько времени потребуется устройству для запуска нового приложения Java. 1s типичен для более старых устройств.

Вы не можете много сделать, если хотите продолжать использовать input. Альтернативы этому будут либо с использованием команды sendevent , либо изменения input, чтобы принять последовательность координат для отправки всего жеста сразу.

3
ответ дан Alex P. 20 August 2018 в 12:27
поделиться

Хотя sendevent, безусловно, является альтернативой, это громоздко и зависит от устройства.

Существует еще одна альтернатива: CulebraTester CulebraTester обеспечивает запись в режиме реального времени и запись по клику через веб-браузер. Этот браузер подключен к тестируемому Android-устройству. Сгенерированный скрипт совместим с AndroidViewClient / culebra , который вы уже знаете. Основное отклонение между обоими решениями - использование другого back-end. AndroidViewClient / culebra обычно использует adb в качестве своего back-end в большинстве случаев, в то время как CulebraTester использует сервер, работающий на устройстве под управлением Ui Automator .

Этот тестовый скрипт. который был автоматически сгенерирован CulebraTester

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


import re
import sys
import os
import time

import unittest
try:
    sys.path.insert(0, os.path.join(os.environ['ANDROID_VIEW_CLIENT_HOME'], 'src'))
except:
    pass

import pkg_resources
pkg_resources.require('androidviewclient>=12.4.0')
from com.dtmilano.android.viewclient import ViewClient, CulebraTestCase
from com.dtmilano.android.uiautomator.uiautomatorhelper import UiAutomatorHelper, UiScrollable, UiObject, UiObject2

TAG = 'CULEBRA'

class CulebraTests(CulebraTestCase):

    @classmethod
    def setUpClass(cls):
        cls.kwargs1 = {'ignoreversioncheck': False, 'verbose': True, 'ignoresecuredevice': False}
        cls.kwargs2 = {'forceviewserveruse': False, 'useuiautomatorhelper': True, 'ignoreuiautomatorkilled': True, 'autodump': False, 'startviewserver': True, 'compresseddump': True}
        cls.options = {'start-activity': None, 'concertina': False, 'device-art': None, 'use-jar': False, 'multi-device': False, 'unit-test-class': True, 'save-screenshot': None, 'use-dictionary': False, 'glare': False, 'dictionary-keys-from': 'id', 'scale': 1, 'find-views-with-content-description': True, 'window': -1, 'orientation-locked': None, 'save-view-screenshots': None, 'find-views-by-id': True, 'log-actions': False, 'use-regexps': False, 'null-back-end': False, 'auto-regexps': None, 'do-not-verify-screen-dump': True, 'verbose-comments': False, 'gui': False, 'find-views-with-text': True, 'prepend-to-sys-path': False, 'install-apk': None, 'drop-shadow': False, 'output': None, 'unit-test-method': None, 'interactive': False}
        cls.sleep = 5

    def setUp(self):
        super(CulebraTests, self).setUp()

    def tearDown(self):
        super(CulebraTests, self).tearDown()

    def preconditions(self):
        if not super(CulebraTests, self).preconditions():
            return False
        return True

    def testSomething(self):
        if not self.preconditions():
            self.fail('Preconditions failed')

        _s = CulebraTests.sleep
        _v = CulebraTests.verbose

        t = time.time()
        for _ in range(100):
            self.vc.click(x=321, y=996)
        print (time.time() - t)


if __name__ == '__main__':
    CulebraTests.main()

Добавлен только синхронизированный цикл, отправляющий 100 кликов. Запуск его показывает, как можно улучшить задержку с помощью этого метода.

0
ответ дан Diego Torres Milano 20 August 2018 в 12:27
поделиться
  • 1
    спасибо. но я получаю эту ошибку: Traceback (последний последний вызов): File & quot; test1.py & quot ;, строка 30, в & lt; module & gt; pkg_resources.require ('androidviewclient & gt; = 12.4.0') Файл «/usr/local/lib/python2.7/dist-packages/pkg_resources / __ init __. py», строка 972, в требуемом require = self.resolve (parse_requirements (требования)) Файл «/usr/local/lib/python2.7/dist-packages/pkg_resources / __ init __. py», строка 858, в разрешении повышать DistributionNotFound (req, requirers) pkg_resources.DistributionNotFound: «androidviewclient & gt; = 12.4.0 'не найден и требуется приложением – Tobias K 6 February 2018 в 20:27
  • 2
    Как вы установили? Easy_install, pip? – Diego Torres Milano 6 February 2018 в 20:42
  • 3
    какие librays я должен установить с помощью pip? – Tobias K 6 February 2018 в 20:47
  • 4
    не помогает. вы можете увидеть ошибку выше – Tobias K 6 February 2018 в 21:01
  • 5
    Итак, каков результат вашей команды pip install androidviewclient? Возможно, вы должны задать еще один вопрос. – Diego Torres Milano 6 February 2018 в 21:30
Другие вопросы по тегам:

Похожие вопросы: