Разница во времени в два клика в Uiaautomator

Я использую UiAutomator для измерения разницы во времени между двумя щелчками, но разница во времени между двумя щелчками, которую я получаю, больше, чем фактическая разница во времени, измеренная вручную секундомером.

Вот сценарий: мне нужно сохранить изображение на устройство, где нажатие Start начнет сохранять изображение на устройстве, пока не появится всплывающее окно OK с готовым сообщением. Поэтому я измерял этот временной интервал.

Вот мой исходный код:

UiObject start_ok = mDevice.findObject(new UiSelector().text("OK"));
// Staring time measuring.......
   starting_time = System.currentTimeMillis();
   start_ok.click();
boolean complete_ok = mDevice.wait(Until.hasObject(By.text("OK")), 10000);
if (complete_ok)
{
  UiObject finished_ok = mDevice.findObject(new UiSelector().text("OK"));
  // Finished time calculating ....
  ending_time = System.currentTimeMillis();
  finished_ok.click();
}
 diff = ending_time - starting_time;

Вышеуказанная разница во времени, которую я получаю, больше, чем когда я делаю вручную. Пожалуйста, предложите мне причину. Также подскажите, как с этим побороться? Как измерить точное время между двумя щелчками?

0
0
181
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В инструкции

boolean complete_ok = mDevice.wait(Until.hasObject(By.text("OK")), 10000);

ваше устройство Android будет ждать 10 секунд, а затем нажмите кнопку ОК.

думаю поменять на

UiObject finished_ok = mDevice.findObject(new UiSelector().text("OK"));
while(!finished_ok.exists()){
   finished_ok = mDevice.findObject(new UiSelector().text("OK"));
}
ending_time = System.currentTimeMillis();
  finished_ok.click();

должно помочь. Здесь вы ждете появления следующей кнопки ОК, а не явного ожидания 10 секунд.

Кроме того, если это тест белого ящика, такой как тестирование Android для эспрессо, нам не нужно ждать появления кнопки. Следующая инструкция будет выполнена, как только появится кнопка. Но эспрессо не подойдет для другого приложения.

Sushant Somani 08.04.2019 08:04

Тем не менее, я получаю разницу во времени, время не точное

Ratnesh 08.04.2019 12:18
UiObject click_finished_ok = mDevice.findObject(new UiSelector().text("OK")); while(!click_finished_ok.exists()) { System.out.print("."); } // Finished time calculating .... ending_time = System.currentTimeMillis(); click_finished_ok.click(); //} diff = ending_time - starting_time;
Ratnesh 08.04.2019 12:43

Другие вопросы по теме

RSpec/Capybara без установки Rails для объектов страницы/файлов поддержки?
Установка идентификаторов автоматизации в существующем приложении
TestCafe использует клиентские функции для получения данных из HTML dataTable
Проведите по мобильному устройству (экран настроек iPad) всегда проводите по правой половине. Как выполнить свайп в левой половине
Команда push-оболочки Android на uiautomator
Как получить скрытый/частный элемент пользовательского интерфейса из UIAutomation, я вижу его в Spy++, но не могу получить к нему доступ в коде, только его родители и братья и сестры
Не удалось найти элементы управления пользовательским интерфейсом на странице в браузере MS Edge
Как обрабатывать модальный диалог в pytest-qt, не издеваясь над диалогом
Программный экспорт фигур (R2019a)
Использование TestStack.White для тестирования элементов управления, которые запускают фоновую работу