1

iOS UIAutomation - 命令行工具使用 -e 设置环境变量。有没有办法在 javascript 的 UIATarget 中访问这些变量?

4

2 回答 2

0

基本上我想为 uiautomation javascript 传递变量。我没有将变量作为环境变量传递,而是从如下的 ini 文件中读取它们。

在配置文件中指定所需的参数。python 脚本读取这些参数并打印到标准输出。UiAutomation javascript 读取标准输出并解析变量

测试.ini

[JSVARS]
server_url = http://foo.com
uname = user11
pwd = secret

Python:

   import json, os;
   import ConfigParser;
   config = ConfigParser.ConfigParser()
   config.read('~/test/test.ini')
   for jsvar in config.items('JSVARS'):
      print jsvar[0]+":"+jsvar[1]+":"+jsvar[0]

Javascript:

var dlimiter = ":"
parseAllEnvironmentVariables()
{
    envvars = host.performTaskWithPathArgumentsTimeout("/usr/bin/python",["getEnvVars.py"], 5).stdout;
}

function getEnvironmentVariable(varname)
{
    return (new String(envvars).substring(envvars.indexOf(varname+dlimiter)+varname.length+dlimiter.length,envvars.indexOf(dlimiter+varname)));
}
于 2013-04-12T17:32:47.160 回答
0

制作一个 shell 脚本,然后使用环境变量的值生成一个 JavaScript 文件:

VAR1=100
...
VARN="something"
cat >> END
const Var1 = "$VAR1";
...
const VarN = "$VARN";
END > Env.js
...
# launch instruments here
instruments [...] -e VAR1 "$VAR1" ... -e VARN "$VARN"

在您的自动化脚本中导入生成的文件:

#import "Env.js"

/* Use `Var1`, ..., `VarN`. */

保存Env.js在自动化脚本目录中,它应该可以正常工作。请注意,您可能需要转义变量以生成有效的 JavaScript。

于 2013-04-04T14:09:29.310 回答