iOS UI 自动化 - performtaskwithpatharguments- curl

Posted

技术标签:

【中文标题】iOS UI 自动化 - performtaskwithpatharguments- curl【英文标题】:iOS UI Automation- performtaskwithpatharguments- curl 【发布时间】:2014-01-24 18:49:13 【问题描述】:

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

我想做几件事。理想的做法是向 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);

我收到以下错误 -

警告:无法创建文件 /Users/me/Documents/output.html: \n警告:没有这样的文件或目录

此目录确实存在,并且任何人都有权读取和写入它....此外,如果我在该目录中创建 .html 文件,也会发生同样的事情。如果我从终端运行相同的命令,它工作正常...

我也想写出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

我不确定我做错了什么......

任何帮助将不胜感激:-)

【问题讨论】:

【参考方案1】:

修复它。每一个传入 performTaskWithPathArgumentsTimeout 的 args 都需要用 "" 和 a 分隔,

因此,例如查询网站并将输出写入文件...

var host = target.host();

var 结果 = target.host().performTaskWithPathArgumentsTimeout("usr/bin/curl", ["-o", "/Users/me/Documents/football.html", "http://www.bbc.co.uk/"], 30) ;

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

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

然后在输出文件中搜索我使用 grep 的特定元素...

var str = "BBC 体育 - 足球";

var 结果 = target.host().performTaskWithPathArgumentsTimeout("usr/bin/grep", ["-w", (str), "/Users/me/Documents/football.html"], 15);

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

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

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

然后我可以使用 if 语句根据预期的表达式是否存在来通过或失败(或使用调整 js 断言)...

用于向网络服务发送请求,然后验证内容...

【讨论】:

以上是关于iOS UI 自动化 - performtaskwithpatharguments- curl的主要内容,如果未能解决你的问题,请参考以下文章

通过 UIA 脚本访问 iOS 用户偏好以实现 UI 自动化

如何在 jenkins 上运行 ios 模拟器进行 ui 自动化测试

使用 UI 自动化以编程方式打开/关闭真实 iOS 设备上的 wifi

iOS - 带有重置应用程序的 UI 自动化多个脚本

在 ios 设备上运行 UI 自动化时出现时间标志错误

iOS 的自动布局能否重新排列 UI 小部件