使用仪器从iOS自动化测试文件进行异步调用
Asynchrounous call from iOS automation test file using instruments
我正在使用iOS提供的仪器应用程序来实现本机iOS应用程序的自动化。测试脚本是在一个js文件中编写的,所以我在想是否可以通过这个测试脚本进行AJAX调用。基本上,我想在测试中继续轮询来自URL调用的一些数据。
我只想做这样的事情:
try{
var pinger = new new XMLHttpRequest();
pinger.open("POST", "http://localhost/someurl/getData_ping"), true);
pinger.send();
}catch(e){
//returns null
}
然后我可以检查响应并做任何需要做的事情。但每次它都会转到catch块,并将错误设为null。
有没有什么方法可以通过充当测试脚本的js文件来实现呢?还有关于这个js文件在哪里执行或它支持什么的信息,因为我找不到任何这样的文档。
好问题,如果您尝试使用的类不在中
https://developer.apple.com/library/ios/documentation/DeveloperTools/Reference/UIAutomationRef/_index.html
或者ECMA规范的一部分,那么您将无法使用它。因此,您没有任何常见的文档对象模型或浏览器对象模型类,如Document
或XMLHTTPRequest
。您想要使用的任何库都不能依赖于这些对象中的任何一个,不幸的是,这消除了大多数常见的JS库。我找到了一个能够避免这种情况的XML解析库,这对我很有帮助https://code.google.com/p/marknote/
至于尝试在测试中发帖,我认为你唯一的选择是使用UIAHost.performTaskWithPathArgumentsTimeout
(请参阅此处)调用curl或python脚本或将需要发布的内容作为参数的东西。如果您还需要执行get,此方法将返回调用的输出。
至于你的null错误,这有点奇怪,尽管我以前也遇到过null或未定义的错误(在我看来,这不应该发生)。我注意到你有两次new
这个词,也许如果你去掉其中一个,你会得到一个XMLHttpRequest变量找不到或类似的东西。希望这能有所帮助。
- 如何使用异步调用更改工厂的变量
- 使变量可用于不带闭包的异步调用
- 需要收集Javascript nodejs异步调用
- 如何使用jQuery等待来自回调的异步调用
- 使用模态库从嵌套的异步调用中生成javascript同步代码
- 在forEach内部进行异步调用
- jQuery没有指定异步调用级别async:false
- SPA异步调用在IE 11中不起作用
- Ember.js-模型find()方法中的异步调用
- Javascript/JQuery处理并发/异步调用和数据竞争
- 在异步调用返回之前隐藏页面
- ExtJs 处理异步调用
- ES6:在异步调用中使用生成器
- Angular js - 异步调用 $scope.users 后不更新模态值
- 在每个循环上完成异步调用,然后转到下一个节点 js
- 从异步调用返回数组,然后为数组的每个元素返回其他异步调用
- 使用 AngularJS 的异步调用
- 循环内部的Javascript异步调用
- 使用Canvas和ForEach处理异步调用
- JavaScript/promise,对sharepoint的多个异步调用