ios – 在许多mac中运行UIAutomation脚本?

ios – 在许多mac中运行UIAutomation脚本?,第1张

概述我可以在mac I Use中很好地创建和重放以下脚本. var target = UIATarget.localTarget(); UIATarget.localTarget().delay(15); target.frontMostApp().mainWindow().tableViews()[0].textFields()[0].tap(); 当我在另一个mac中运行上面的脚本时, 我可以在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.如何在多个中实现此目的
mac系统?两个mac都有相同的xcode版本(xcode 5)和模拟器版本(6.1)和mac版本.为什么Instruments在不同的mac中采用不同的脚本API?

解决方法 为了获得更一致的结果,其中一种方法可以是按名称(或其他标识符/预期内容/包含的单元格数等)访问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中这看起来不太好但是它可以是合理的解决方法并且应该非常可靠.如果在这些表中知道和不同的单元的数量,则可以比较单元的数量以找到所需的表.

总结

以上是内存溢出为你收集整理的ios – 在许多mac中运行UIAutomation脚本?全部内容,希望文章能够帮你解决ios – 在许多mac中运行UIAutomation脚本?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1005279.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存