首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >具有大量滚动功能的iOS UI自动化

具有大量滚动功能的iOS UI自动化
EN

Stack Overflow用户
提问于 2014-04-15 09:15:52
回答 2查看 2K关注 0票数 1

在过去的一周里,我一直在调整Xcode/Instruments/UIAutomation脚本,试图实现本应易于自动化的功能。但是没有任何东西能像我期望的那样工作。

据我所知,这是由于控件在屏幕外时的虚拟化方式。问题是,在任何给定的时间,我需要测试的绝大多数内容都不会被呈现,直到我显式地滚动到它。

具体地说,我有一个两页的UIAScrollView。第二个页面有一个包含大量单元格的集合,偶尔也会有StaticText。

我还没有找到一种好的方法来验证StaticText是否显示了它们应该显示的内容。我发现的唯一方法是查看当前屏幕上的StaticTexts,滚动少量,看看它是否发生了变化,然后继续这样做。这是有问题的,特别是因为我最终到达了底部,并且没有明确的方法来表明我已经完成了滚动。

我尝试过按名称查找元素并使用scrollToVisible...如果有问题的控件“刚刚”离开屏幕,这似乎是有效的,但只有在那时。

除了有一个循环重复进行少量的滚动直到它看到它正在寻找的控件之外,还有什么解决方法吗?

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2014-04-15 15:02:03

你可以得到单元格数组的长度并遍历它。一种方法是:

代码语言:javascript
运行
复制
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
    ....
}
票数 1
EN

Stack Overflow用户

发布于 2014-10-21 20:31:29

您可以先检查它是否有效,然后检查是否可见,请参阅下面的...

代码语言:javascript
运行
复制
if ( window.staticTexts()["YourStaticText"].checkIsValid() )
{
if (!window.staticTexts()["YourStaticText"].isVisible() )
{
    UIALogger.logMessage("object is valid");
    window.staticTexts()["YourStaticText"].scrollToVisible();

}
}

如果你想把它滚动到下一页

代码语言:javascript
运行
复制
window.staticTexts()["YourStaticText"].scrollDown();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23073029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档