javascript - 如何使用 JavaScript 访问 UI 自动化中的操作表(及其按钮)?

标签 javascript ios uiactionsheet ios-ui-automation xcode-instruments

我有一个非常简单的应用程序,其中包括一个 TableViewController,它显示一个表格,其中包含几个带有图像、标签和按钮的自定义单元格,当您点击一个按钮时,actionSheet 会出现。因此,在我的自定义 java 脚本(使用 Instruments-UIAutomation)中,我想按下表中的按钮(我可以毫无问题地做到这一点),然后当 actionSheet 出现时,我只想点击唯一的按钮(取消按钮)它表明。

而且我不知道如何正确地做到这一点。所以这是我的 js 代码:

var target = UIATarget.localTarget();
var app = target.frontMostApp();
var main = app.mainWindow();

main.tableViews()[0].cells()[1].buttons()["DetailsButton"].tap();
target.delay(5);
main.actionSheet().elements()[0].tap();

这就是我收到的消息:

Script threw an uncaught JavaScript error: 'undefined' is not a function (evaluating 'main.actionSheet()') on line 9 of New%20Script

我也尝试过 actionSheet().buttons()[0].tap(); - 没有帮助,不断出现同样的错误。

我什至尝试通过 accessibleLabel 访问 actionSheet:

main.actionSheet()["CellNumberSheet"].elements()[0].tap();

如果有帮助的话,这就是我展示 actionSheet 的方式:

[actionSheet showInView:[UIApplication sharedApplication].keyWindow];

元素层次结构似乎也是正确的。

enter image description here

在网络上找不到太多有用的信息...所以任何帮助将不胜感激...

最佳答案

在 iOS8 上,操作表按钮和元素似乎不起作用,所以我检查了 SparkInspector,它现在使用 Collection View :

此代码将点击不是取消按钮的底部按钮:

target.frontMostApp().actionSheet().collectionViews()[0].visibleCells()[0].tap()

关于javascript - 如何使用 JavaScript 访问 UI 自动化中的操作表(及其按钮)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21331594/

相关文章:

ios - iTunes查找所有屏幕截图版本?

ios - iOS6 中的 UITextField 背景属性问题

swift : OverlayView that appears at the bottom of the screen

ios - UIAlertController 无法满足约束

ios - 在 iPad 上显示来自 ActionSheet 的 ImagePickerController

javascript - 子菜单需要是浏览器窗口的全宽

javascript - jasmine.stringMatching 方法未定义

ios - 如何添加一个覆盖 Storyboardsegue的按钮(在swift 3中)

javascript - 防止 Javascript 在遇到错误时停止

javascript - TypeError<匿名> javascript 错误