iOS UIAutomation - 命令行乐器使用-e设置环境变量。有没有办法在javascript的UIATarget中访问这些变量?
答案 0 :(得分: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。
答案 1 :(得分:0)
基本上我想传递uiautomation javascript的变量。我没有将变量作为环境变量传递,而是从ini文件中读取它们,如下所示。
在配置文件中指定所需的参数。 python脚本读取这些参数并打印到stdout。 UiAutomation javascript读取stdout并解析变量
test.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)));
}