这是答案。我自己做的。这就是过程。
我们可以使用 delay(int) 方法来暂停测试脚本,因为脚本仍然有效。否则脚本将在动态 UI 绘制之前结束。
现在 logElementTree() 方法起作用了,我们可以访问 UI 元素。
这就是我们访问动态生成的 UI 元素的方式。在我的应用程序中,首先有一个连接按钮,当单击它时,会出现一个带有文本框的 UI,并且会动态绘制一个登录按钮。
这是访问 UI 元素的脚本。
var target = UIATarget.localTarget(); var app = target.frontMostApp(); app.logElementTree();
//-- 选择元素 UIALogger.logMessage( "点击连接按钮" ); var window = UIATarget.localTarget().frontMostApp().mainWindow().buttons() [0].tap();
UIALogger.logMessage("等待下一个用户界面"); 目标.延迟(2);target.frontMostApp().logElementTree(); UIALogger.logMessage("输入用户名");
UIALogger.logMessage("等待下一个用户界面"); 目标.延迟(3);target.frontMostApp().logElementTree(); target.frontMostApp().mainWindow().scrollViews()[0].textFields()[0].setValue("admin"); UIALogger.logMessage("关闭键盘"); var name = UIATarget.localTarget().frontMostApp().keyboard().buttons()["done"].tap();
希望这对某人有帮助