ios – 在许多mac中运行UIAutomation脚本?
发布时间:2020-12-14 17:22:58 所属栏目:百科 来源:网络整理
导读:我可以在mac I Use中很好地创建和重放以下脚本. var target = UIATarget.localTarget(); UIATarget.localTarget().delay(15); target.frontMostApp().mainWindow().tableViews()[0].textFields()[0].tap(); 当我在另一个mac中运行上面的脚本时,它在第3行显示
我可以在mac I Use中很好地创建和重放以下脚本.
var target = UIATarget.localTarget(); UIATarget.localTarget().delay(15); target.frontMostApp().mainWindow().tableViews()[0].textFields()[0].tap(); 当我在另一个mac中运行上面的脚本时,它在第3行显示错误. target.frontMostApp().mainWindow().tableViews()[1].textFields()[0].tap(); 我刚将tableview的索引从0更改为1.如何在多个中实现此目的 解决方法
为了获得更一致的结果,其中一种方法可以是按名称(或其他标识符/预期内容/包含的单元格数等)访问AX元素.例如这里
Trouble Getting Elements by Name from UIAElementArray in UIAutomation SO问题以及关于如何以不同方式设置元素名称的相应讨论.
例如: var mainWindow = UIATarget.localTarget().frontMostApp().mainWindow(); var tableViews = mainWindow.tableViews(); tableViews['TableView'].textFields()[0].tap(); 要么 var mainWindow = UIATarget.localTarget().frontMostApp().mainWindow(); var tableViews = mainWindow.tableViews(); tableViews['TableView'].textFields.withName("TextFieldName")[0].tap(); 如果使用名称不可行则可以分析表格的内容并根据右表格进行选择.例如,如果表有一些名为“Cell name”的单元格: var mainWindow = UIATarget.localTarget().frontMostApp().mainWindow(); var tableViews = mainWindow.tableViews(); if (tableViews[0].cells().firstWithName("Cell name")) { tableViews[0].textFields()[0].tap(); } else if (tableViews[1].cells().firstWithName("Cell name")) { tableViews[1].textFields()[0].tap(); } 关于在tableView中识别单元格的更多细节,例如在SO问题UIACollectionView cells vs visibleCells中这看起来不太好但是它可以是合理的解决方法并且应该非常可靠.如果在这些表中知道和不同的单元的数量,则可以比较单元的数量以找到所需的表. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |