我正在测试我的应用,但是DatePicker有问题。 我需要的是向下滑动直到另一个月出现(搜索特定日期)。
结构有点棘手但我使用
使其工作new UiScrollable(new UiSelector().className(android.widget.ViewAnimator.class.getName())).scrollTextIntoView("November")
问题是,即使视图滚动,也是
1)向错误的方向滚动(向上)
2)即使11月已经过去,也不会停止。(即使是2017年11月或2015年11月......)
如何创建此条件。在以独特方式命名所有视图之后,检查结构将有可能找到" 2016年11月1日"。
答案 0 :(得分:0)
好吧,看起来我找到了一个或多或少都能正常运作的解决方案:
起初我尝试使用子条件,因为UiSelector可能有子定义。但事实证明这很难,因为ViewAnimator内部是一个包含“日历月”视图的(单个)子对象ListView。 所以在那里找到一个带有描述“12月15日......”的儿童观看是很棘手的。
新解决方案就是这样做的。
我重复此操作,直到找到元素(并单击)或最大滚动尝试耗尽为止。 滚动后我让设备等待1秒钟。这很有用,因为滑动是异步调用的,并且在处理点击时会继续滑动片刻。 这并没有显示出问题(因为视图已被点击)但仍然可能令人困惑。
我希望这有帮助!如果找到更好的解决方案,请随时发布更好的解决方案。
int tries = 0;
while (tries < MAX_TRIES) {
UiObject2 dateField = mDevice.findObject(
By.descStartsWith(SEARCH_DATE));
if (dateField != null) {
dateField.click();
break;
} else {
tries ++;
new UiScrollable(new UiSelector().
className(android.widget.ViewAnimator.class.getName())).
scrollToEnd(1);
mDevice.wait(Until.findObject(By.descStartsWith(SEARCH_DATE)), 1000);
}
}