量角器:我应该如何从 browser.executeAsync 中传播错误?
Posted
技术标签:
【中文标题】量角器:我应该如何从 browser.executeAsync 中传播错误?【英文标题】:Protractor: How should I propagate an error from within browser.executeAsync? 【发布时间】:2014-03-15 05:11:34 【问题描述】:如果根据量角器规范,我在 browser.executeAsyncScript 中执行脚本,我应该如何传达该脚本确实失败了?考虑以下对 browser.executeAsyncScript 的调用:
browser.executeAsyncScript((callback) ->
# How do I communicate an error condition here!?
callback()
)
.then((data) ->
console.log("Browser async finished without errors: #data")
, (data) ->
console.log("Browser async finished with errors: #data")
)
我想要发生的是调用 then 的错误回调。我该怎么做?
【问题讨论】:
【参考方案1】:来自webdriverjs doc:
driver.executeAsyncScript(function()
var callback = arguments[arguments.length - 1];
var xhr = new XMLHttpRequest();
xhr.open("GET", "/resource/data.json", true);
xhr.onreadystatechange = function()
if (xhr.readyState == 4)
callback(xhr.responseText);
xhr.send('');
).then(function(str)
console.log(JSON.parse(str)['food']);
);
所以,它似乎没有错误回调,但是您可以将一些参数传递给回调方法。您可以使用它来传播错误。
【讨论】:
是的,我只需将成功/失败标志传递给 executeAsyncScript 回调就可以了。 executeAsyncScript 的文档现在位于seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/…以上是关于量角器:我应该如何从 browser.executeAsync 中传播错误?的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 Protractor 使用 vanilla JS 从 API 获取 json