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

量角器,单击()后何时应使用then()

傅浩漫
2023-03-14
问题内容

我正在运行Angular应用,当在量角器a上进行测试时click(),我不知道何时应该使用a来解决诺言then()

我在Protractor API上找到了这个:

click命令完成后将解决的承诺。

所以,我应该click().then()在每个使用click


问题答案:

那么,我是否应该在每次点击中都使用click()。then()?

当然不。

不需要它是因为Protractor /
WebDriverJS具有称为“控制流”的机制,该机制基本上是需要解决的承诺队列:

WebDriverJS维护一个待处理的承诺队列(称为控制流),以保持执行有条理。

量角器自然而然地等待Angular:

您不再需要为测试添加等待和休眠。量角器可以在网页完成待处理的任务时自动执行测试的下一步,因此您不必担心等待测试和网页同步

这导致了一个相当简单的测试代码:

var elementToBePresent = element(by.css(".anotherelementclass")).isPresent();

expect(elementToBePresent.isPresent()).toBe(false);
element(by.css("#mybutton")).click();
expect(elementToBePresent.isPresent()).toBe(true);

不过,有时,如果您遇到同步/定时问题,或者被测应用为非Angular应用,则可以通过click()显式解决with
then()并在click回调中继续进行操作来解决该问题:

expect(elementToBePresent.isPresent()).toBe(false);
element(by.css("#mybutton")).click().then(function () {
    expect(elementToBePresent.isPresent()).toBe(true);
});

在这些情况下,也有明确的救援等待,但这与此处无关。



 类似资料:
  • 我必须使用量角器和GoogleDrive点击按钮,但问题是在点击之前我有一个加载。所以我必须等待加载消失,然后我可以点击按钮。给定的误差量角器为: 错误是: 要素在点(111、145)处不可点击。其他元素将收到点击:。。。(会话信息:chrome=61.0.3163.100)(驱动程序信息:chromedriver=2.33.506120(E3E534376286C0BC2DC2DC9AA4915

  • 问题内容: 我有一个元素,只有将鼠标悬停在该元素上时,该元素才可见。 我已经编写了以下代码,将其放在面板上,以便该元素可见。 现在,我尝试单击它,但它说-ElementNotVisibleError:量角器中的元素不可见错误。 基本方案是,我想将鼠标悬停在面板上,然后单击隐藏的元素,因为直到将元素悬停在该元素上才可见。 问题答案: 以下代码为我工作。

  • 问题内容: 我有一个很大的数据列表(4000多个项目)。开始输入时- 我的浏览器冻结(最多15秒)。所以我需要关闭自动过滤器功能,并将过滤器功能绑定到单击按钮。通过Google寻找答案没有结果。我该怎么做?请帮帮我 :) 码: 和控制器: 问题答案: 我找到了解决方案! 更改: 至: 向控制器添加“ applySearchFilter”功能 并为过滤器按钮添加html代码: 这有效! 请注意,我在

  • 问题内容: 是否可以使用浏览器中的“历史记录后退”按钮检测到用户进入了页面?最好是我想使用angular.js检测到此动作。 我不想使用角度布线。如果用户提交表单,并且在成功提交到服务器并进行重定向之后,它也应该起作用,如果用户使用浏览器的“后退”按钮返回到表单,则也应该是可行的。 问题答案: 这是Angular的解决方案。 我正在使用运行块来启动它。首先,我将实际位置存储在$ rootScope

  • 问题内容: 我正在使用量角器在我的应用中进行角度js测试,目前大约有19个测试用例,其中一个失败了 当前,我运行所有测试用例。但是,如何仅运行一个测试用例来调试问题,例如描述为“登录页面应成功登录用户”的问题? 问题答案: Protractor的最新版本(至少)支持通常的Jasmine方法:将函数重命名为,并且仅运行其中的测试。或将函数重命名为,仅此测试将运行。

  • 我最近一直在用厚颜无耻为我的角度应用程序编写单元测试,到目前为止一切都很好,但现在我开始编写e2e测试,并想使用量角器,因为这是在现代角度中进行e2e的推荐方法,但我不确定如何将两者集成。 我一直在搜索,找不到任何例子或提示。你可以在这里看到我目前正在我的一个宠物项目中尝试的设置:https://github.com/guerrademitos/MitoPedia