UIAutomation dragInsideWithOptions 对 iOS 7 模拟器没有影响

Posted

技术标签:

【中文标题】UIAutomation dragInsideWithOptions 对 iOS 7 模拟器没有影响【英文标题】:UIAutomation's dragInsideWithOptions has no effect on iOS7 simulator 【发布时间】:2013-09-13 18:32:47 【问题描述】:

由于我使用 Xcode 5 和新的 ios 7 模拟器来运行带有 Instruments 的 UIAutomation 测试,dragInsideWithOptionsdragFromToForDuration 函数根本不起作用。 (同样的测试在 iOS 6.1 模拟器上运行良好。)这是一个已知的错误,还是这个功能的可用性已经改变?有没有人可以在 iPad 上的 iOS 7 模拟器上使用这个功能?

【问题讨论】:

锁屏也不起作用,因为它还使用了拖动功能。 这在 XCode 5.1 中修复了吗? 也无法在设备 (iOS 7.1.2) 上运行。 在 iOS8 设备上运行良好。 【参考方案1】:

这里也是同样的问题。除了 dragInsideWithOptions 不起作用之外,dragFromToForDuration 和 flickFromTo 在带有 iOS 7 的 Xcode 5 中也不起作用。我也一直在寻找并等待解决方案。在那之前,刷卡是不可能的。

【讨论】:

【参考方案2】:

这有点旧,但dragInsideWithOptions 似乎仍然无法正常工作。

对于UIScrollView,可以使用以下方法:

scrollUp
scrollDown
scrollLeft
scrollRight

来源:https://developer.apple.com/library/prerelease/ios/documentation/ToolsLanguages/Reference/UIAScrollViewClassReference/index.html

例如:

UIATarget.localTarget().frontMostApp().mainWindow().scrollViews()[0].scrollRight();

希望对你有帮助!

【讨论】:

【参考方案3】:

另一种解决方法:如果您有与滚动视图关联的页面控件,请使用:

pageIndicator = UIATarget.localTarget().frontMostApp().mainWindow().pageIndicators()[0];
pageIndicator.selectPage(1);

【讨论】:

我遇到了同样的问题,您的解决方法效果很好。感谢发布!【参考方案4】:

同样的问题。

不仅如此,新的 iOS7 还缺少与 UI 自动化相关的所有文档

https://developer.apple.com/library/prerelease/ios/documentation/ToolsLanguages/Reference/UIAElementClassReference/UIAElement/UIAElement.html

将其与当前文档进行比较,包含完整的方法列表和描述。

https://developer.apple.com/library/ios/documentation/ToolsLanguages/Reference/UIAElementClassReference/UIAElement/UIAElement.html

【讨论】:

我刚想到要在一个可以在那里工作的设备上测试它,至少在我的带有 iOS7 GM 的 iPad mini 上它可以工作【参考方案5】:

解决方法:如果您想在稍后的页面上滑动包含按钮的滚动视图,只需轻按此(不可见)按钮,它就会自动“滚动到可见”。 (或者调用这个不可见元素的scrollToVisible()函数。)

【讨论】:

以上是关于UIAutomation dragInsideWithOptions 对 iOS 7 模拟器没有影响的主要内容,如果未能解决你的问题,请参考以下文章

使用 UIAutomation 的仪器出现意外错误

UIAutomation 未能点击一个键

UIAutomation 无法访问元素

如何处理 UIAutomation 中的文本通知?

python+UIAutomation+libary

pythonGUI自动化:uiautomation的常见使用