Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 两个点击式Uiautomator中的时差_Android_Ui Automation - Fatal编程技术网

Android 两个点击式Uiautomator中的时差

Android 两个点击式Uiautomator中的时差,android,ui-automation,Android,Ui Automation,我使用UiAutomator来测量两次单击之间的时间差,但是我得到的两次单击之间的时间差比秒表手动测量的实际时间差要大 下面是一个场景:我必须将图像保存到设备上,单击Start将开始将图像保存到设备上,直到出现带有完成消息的OK弹出窗口。所以我在测量这个时间间隔 以下是我的源代码: UiObject start_ok = mDevice.findObject(new UiSelector().text("OK")); // Staring time measuring....... sta

我使用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;
上述时间上的差异,我得到的比我手工做的更多。请给我一个理由。还建议我如何克服这个问题?如何测量两次单击之间的准确时间?

在说明中

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();
应该有帮助。
在这里,您正在等待下一个OK按钮的出现,而不是显式等待10秒。

此外,如果这是像espresso android测试一样的白盒测试,那么我们不必等待按钮出现。按钮一出现,下一条指令将立即执行。但是浓缩咖啡不适用于其他应用程序。尽管如此,我还是得到了时差,时间不准确
UiObject click\u finished\u ok=mDevice.findObject(新的UiSelector().text(“ok”);当(!click_finished_ok.exists()){System.out.print(“.”;}//完成时间计算。。。。end_time=System.currentTimeMillis();单击_finished_ok。单击();/}差异=结束时间-开始时间