当我使用仪器的uiautomation工具时,我需要以下信息:

1)是否有任何动态摄取数据的过程。例如,如果我需要使用此脚本来测试TextField的不同数据,那么我如何在不修改硬编码的TextField值的情况下实现?我不想通过JavaScript中的手动循环进行操作?是否可以使用javaScript将列出TextField值列表的SQLite?我是iOS仪器中的新uiautomation。以下行是脚本中的第一个命令

        UIATarget.localTarget().frontMostApp().mainWindow().textFields()["username"].setValue("test");

但是我想在不更改实际脚本的情况下通过终端下命令进行setValue

  instruments -t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate <full_path_to_application> -e UIASCRIPT <path_to_script.js> -e UIARESULTSPATH <output_results_path>

任何人都可以帮助如何通过上述命令进行染色体?有其他方法可以动态地为用户名提供SetValue而不手动更改脚本吗?

2)是否可以通过uiautomation中的JavaScript验证屏幕的组件和属性?

有帮助吗?

解决方案

1. 是的。您应该编写一个系统级脚本,该脚本从数据中生成JavaScript代码,并从命令行调用仪器。示例脚本是:

#!/bin/bash
echo 'var thisIsAGeneratedInput = "Sample Input variable";' > input.js
instruments -t test.tracetemplate your_app_with_path.app -e UIASCRIPT test.js

文件“ test.js”应该看起来像:

#import "input.js"
UIALogger.logMessage(thisIsAGeneratedInput);

2. 功能 value() 是获取请求信息的正确方法, name() 如果给出,将返回可访问性ID。注意:在Xcode 5中 value() 可能行不通, , 利用 name() 对于解决方法,但在版本5之前还可以。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top