在过去的一周里,我一直在调整Xcode/Instruments/UIAutomation脚本,试图实现本应易于自动化的功能。但是没有任何东西能像我期望的那样工作。
据我所知,这是由于控件在屏幕外时的虚拟化方式。问题是,在任何给定的时间,我需要测试的绝大多数内容都不会被呈现,直到我显式地滚动到它。
具体地说,我有一个两页的UIAScrollView。第二个页面有一个包含大量单元格的集合,偶尔也会有StaticText。
我还没有找到一种好的方法来验证StaticText是否显示了它们应该显示的内容。我发现的唯一方法是查看当前屏幕上的StaticTexts,滚动少量,看看它是否发生了变化,然后继续这样做。这是有问题的,特别是因为我最终到达了底部,并且没有明确的方法来表明我已经完成了滚动。
我尝试过按名称查找元素并使用scrollToVisible...如果有问题的控件“刚刚”离开屏幕,这似乎是有效的,但只有在那时。
除了有一个循环重复进行少量的滚动直到它看到它正在寻找的控件之外,还有什么解决方法吗?
谢谢!
发布于 2014-04-15 15:02:03
你可以得到单元格数组的长度并遍历它。一种方法是:
for (var index = 0; index < mainWindow().scrollViews()[0].cells().length; index++)
{
var currentCell = mainWindow().scrollViews()[0].cells()[index];
mainWindow().scrollViews()[0].scrollToElementWithName(currentCell.name());
//Do whatever you need to do
....
}发布于 2014-10-21 20:31:29
您可以先检查它是否有效,然后检查是否可见,请参阅下面的...
if ( window.staticTexts()["YourStaticText"].checkIsValid() )
{
if (!window.staticTexts()["YourStaticText"].isVisible() )
{
UIALogger.logMessage("object is valid");
window.staticTexts()["YourStaticText"].scrollToVisible();
}
}如果你想把它滚动到下一页
window.staticTexts()["YourStaticText"].scrollDown();https://stackoverflow.com/questions/23073029
复制相似问题