【问题标题】:Angular 2 e2e TestingAngular 2 e2e 测试
【发布时间】:2017-06-10 14:14:36
【问题描述】:

我刚开始使用 Angular 2 和 e2e 测试,我正在尝试通过使用量角器单击空白区域来关闭 Bootstrap 4 模式。我试过了:

it('should close the login modal when the blank space outside of the modal is clicked', () => {
  element(by.tagName('body')).click().then(function() {
    browser.sleep(250);
    expect(element(by.id('myModal')).isDisplayed()).toBeFalsy();
  });
});

...我什至尝试过:

it('should close the login modal when the blank space outside of the modal is clicked', () => {
  browser.actions()
  .mouseMove(element(by.id('login_modal')), -20, -20)
  .click().then(function() {
    browser.sleep(250);
    expect(element(by.id('login_modal')).isDisplayed()).toBeFalsy();
  });
});

我是 Angular 2 世界的新手,所以答案可能很明显。提前感谢您的帮助。

【问题讨论】:

  • 有什么问题/问题。不是关门了吗?
  • 正确。我无法单击空白区域并关闭模式。

标签: angular protractor bootstrap-modal e2e-testing


【解决方案1】:

感谢您的反馈,这使我得到了答案。我应该发帖说这是一个引导模式,这是相关的。调用时,模式覆盖整个页面,而不仅仅是中间的矩形。通过将我的坐标设置为 x:0, y:0,我位于模态的“空白”区域。

【讨论】:

    【解决方案2】:

    我还没有看到你的 HTML,但我认为这会发生。元素上的click-action 将执行对元素中心的点击,参见actions docs

    这取决于模态框在页面上的位置,但在常见情况下,模态框位于页面中心。如果我们将其用作给定并执行您在上面描述的第一个单击命令,我们将得到以下内容

    • 点击body,body就全屏了,body中心会点击modal => modal不会关闭

    你描述的第二次点击命令失败,因为需要提供对象,见here,所以需要是

    browser.actions()
      .mouseMove(element(by.id('login_modal')), {
        x: toRight,
        y: toBottom
      })
      .click().then(function() {
        browser.sleep(250);
        expect(element(by.id('login_modal')).isDisplayed()).toBeFalsy();
      });

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多