当前位置: 首页 > 面试题库 >

量角器:承诺如何运作?

徐高懿
2023-03-14
问题内容

我对angular中的$ q库如何工作有一个不错的想法,但是我不确定量角器或web-driver-
js如何使用它们。(特别是因为我认为量角器/网络驱动程序/角度之间的利用率略有不同)

例如,我在量角器教程中看到的示例代码似乎是逐行编写的,并且假定上一个在下一个之前完成。(例如,browser.get(url)后跟browser.getTitle())是否存在某种隐含的承诺?(我不必手动推迟解决/实现)

我已经阅读了https://github.com/angular/protractor/blob/master/docs/getting-
started.md,

并略过了webdriver文档和量角器api的链接,但我的理解仍然有些模糊。有些函数似乎返回值,而有些返回承诺像同步和异步代码的奇怪混合。


问题答案:

是否存在某种隐含的前途?

查看https://github.com/angular/protractor/blob/master/docs/control-
flow.md
,答案似乎是 肯定的 ,通过使用承诺队列,称为控制流。因此,请扩展您的示例:

browser.get(url);
var title = browser.getTitle();
expect(title).toEqual('My Title');

上面的每一行都添加到队列中。变量title实际上是一个承诺,它在控制流中的适当点expect解开。



 类似资料:
  • 问题内容: 库具有此整齐的功能,可以解决多个promise并将其分散到单独的参数中: 如果对数组有保证,则可以使用点差代替。传播函数将值“传播”在实现处理程序的参数上。 在量角器中,我们尝试使用来自的内置函数。 问题: 是否可以使用“传播”功能? 用例示例: 我们已经实现了一个自定义的茉莉花匹配器,以检查元素是否聚焦。在这里,在进行相等比较之前,我们需要解决两个诺言。目前,我们正在使用和: 理想情

  • 问题内容: 我想使用Node Http模块直接调用服务器以设置我的量角器测试。Http基于回调,我想将其变为promise。 例如,我想让这个函数返回promise: 因此,问题是:我需要什么并代替“以某种方式创造承诺”才能使之起作用? 问题答案: 量角器使用WebDriver的承诺,并在“量角器”上全局公开该API。所以你应该能够做 有关完整的WebDriverJS Promise API,请参

  • 问题内容: 我正在编写一个测试用例,用于使用Protractor在Angular应用程序的页面中添加商店信息,在这里我最初是在计算已经拥有的商店数量,并且在完成测试块后,我希望该数量增加一,因此通过遵循创建承诺的链接来做到这一点如何在量角器中创建和操纵承诺? 我希望测试结束时商店的数量是相同的。count()正在解决一个承诺,并且商店计数的正确值会打印在testPromise()中,但是当我调用t

  • 问题内容: 在我的测试中,我调用了外部库并在使用量角器运行一些ui测试之前将数据播种到我们的后端。 因此,dataBuilder返回的promise在it()实际完成之前不会得到解决。如何将dataBuilder返回的Promise添加到webDriver的流控制中? 问题答案: 量角器在量角器对象上公开WebDriverJS承诺,因此您可以使用方法或创建新的承诺和使用。 前者可以达到以下目的:

  • 问题内容: 我这样承诺 返回一个promise,yes 不能被修改 。 我如何在第一场比赛中脱颖而出?(除了显式抛出错误以外,还有其他方法吗?) 问题答案: 我想你不想在这里连锁。以同步的方式,您会写 这就是应如何将其转化为承诺: 诺言没有实现。

  • 问题内容: 我想做这样的事情: 因此,我想声明一个承诺,可以使用then来解决。但是,此承诺可能会被另一个返回内容的承诺覆盖。以后我想解决诺言是否有内容。这可能吗?我尝试过: 但是,当用户在场时这不起作用。有任何想法吗? 问题答案: 就像Bixi所写的那样,您可以使用将承诺或价值包装到承诺中。如果您传递给的是承诺,则将返回该承诺,否则将创建一个新的承诺,并直接使用您传递的值来解决。类似以下内容: