量角器:我应该如何从 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

如何从量角器[3.0.0]和黄瓜最新版本获得cucumber-test.json

如何在 WebStorm 中调试角度量角器测试

从量角器中的json文件中获取数据

量角器页面对象继承

从ng测试命令中排除量角器文件