2014-01-24 24 views
0

请帮忙!!!我正在尝试将一些performtaskwithpathargumentstimeout函数添加到我的ios UI自动化JavaScript中。具体来说,我在应用程序中提交了一个表单,随后想检查它是否已成功提交。但是我有问题。iOS UI自动化 - performtaskwithpatharguments-卷曲

我想做几件事情。理想的做法是对URL执行curl请求,然后搜索返回的stdout正文以确保有几个关键字在那里。然而,当我尝试使用result.stdout上的任何indexOf或.search函数时,仪器不断崩溃...

我认为另一种选择是将html输出到文件,然后通过编写命令行应用程序来搜索该文件它将搜索作为参数传递的关键字。然而,当我尝试和输出文件的目录使用以下各项

var target = UIATarget.localTarget(); 

var host = target.host(); 

result = target.host().performTaskWithPathArgumentsTimeout("usr/bin/curl", ["-o /Users/andrewweaver/Documents/output.html", "http://www.google.co.uk"], 30); 

UIALogger.logDebug("exitCode: " + result.exitCode); 

UIALogger.logDebug("stdout: " + result.stdout); 

UIALogger.logDebug("stderr: " + result.stderr); 

我收到以下错误 -

警告:无法创建文件/用户/我/文档/输出html的: \ n警告:没有这样的文件或目录

该目录确实存在,并且有权限人读取&写吧....还有,如果我在该目录中创建的.html文件同样的事情很开心ENS。如果我运行从终端能正常工作相同的命令......

我也想做一个写出来的HTTP代码...

result = target.host().performTaskWithPathArgumentsTimeout("usr/bin/curl", ["--write-out %{http_code}", "http://www.google.co.uk"], 30); 

但同样,这是失败....

curl: option --write-out %{http_code}: is unknown 

我不知道我做错了什么....

任何帮助将非常感激: - )

回答

0

修正了它。每个传递到performTaskWithPathArgumentsTimeout的args来需要通过“分治”,一,

因此,例如查询一个网站,并写输出到文件...

VAR主机= target.host( ); (“usr/bin/curl”,[“-o”,“/Users/me/Documents/football.html”,“http://www.bbc.co.uk/”],30);以及其中, UDIogger.logDebug(“exitCode:”+ result.exitCode);其中, UDIogger.logDebug(“stdout:”+ result.stdout);其中,

然后搜索我用一个特定元素的grep输出的文件...

无功海峡=“BBC体育 - 足球”; (“usr/bin/grep”,[“-w”,(str),“/Users/me/Documents/football.html”],15);

UIALogger。logDebug(“exitCode:”+ result.exitCode); UDIogger.logDebug(“stdout:”+ result.stdout);其中,

如果找到正则表达式,则返回0;将BBC Sport - Football作为标准输出返回。

然后我就可以使用if语句来基于合格或不合格(或使用热身JS断言)预期的表达是否存在...

有用的将请求发送到Web服务,然后验证的内容。 ..