javascript - UIautomation 中的不同输入无需手动修改脚本

标签 javascript iphone ui-automation ios-ui-automation android-testing

由于我正在使用 Instruments 的 UIAutomation 工具,我需要以下信息:

1) 是否有任何动态提供数据的程序。例如,如果我需要使用此脚本来测试 Textfield 的不同数据,如何在不修改硬编码 Textfield 值的脚本的情况下实现?我不想通过 javascript 中的手动循环来实现?是否可以使用 Sqlite,javascript 将通过它获取文本字段值列表? 我是 ios in instruments 中的新 UIautomation。以下行是脚本中的第一条命令

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

但我想在不改变实际脚本的情况下通过终端在以下命令中给出设置值

  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>

任何人都可以帮助如何通过上述命令动态地给出设置值?有没有其他方法可以在不手动更改脚本的情况下动态地为用户名设置值?

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

最佳答案

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

#!/bin/bash
echo 'var thisIsAGeneratedInput = "样本输入变量";' > 输入.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() might not work ,使用 name() 作为解决方法,但在版本 5 之前是可以的。

关于javascript - UIautomation 中的不同输入无需手动修改脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19851845/

相关文章:

javascript - 动态输入文本框未绑定(bind)到自动完成

iphone - 在 Settings.app 中隐藏设置包

android - 智能手机加速度计手势算法

javascript - 如何使用javascript测试元素在列表中排序?

iphone - 仪器 .trace 文件问题

javascript - 是否可以通过 nightwatch.js 设置元素的 Style 属性值?如果是的话怎么办?

javascript - 使用 JavaScript 防止网页导航离开

javascript - 如何根据 JavaScript 中哪个 nodeList 不为空来设置变量?

javascript - 在JavaScript中,为什么blur方法会触发blur事件,而submit方法不会触发submit事件?

iphone - MonoTouch 是否需要 Mac 才能发布到 iPhone/iPod Touch?