使用量角器

时间:2017-09-18 10:51:50

标签: angular testing protractor e2e-testing angular-e2e

我想测试我的应用是否滚动到线程页面内的特定帖子。

最初我认为isDisplayed可能会有所帮助,并编码如下:

element(by.id(postId)).isDisplayed().then((isDisplayed) => {
  expect(isDisplayed).toBe(true);
});

仔细阅读documentation后,isDisplayed不检查元素是否在视口内。

一种hacky方式是计算各种元素的位置,从可滚动的父级开始(在我的情况下不是window)。

检查这个是否有最佳做法?

1 个答案:

答案 0 :(得分:2)

第一个想法(您提到):

el.getWindowMyRect().isInsideMyRect(getWindowMyRect())

此方法不能解决页面内的内部滚动问题


次主意:

  • elm.getBoundingClientRect()并记下值
  • 滚动到元素,如果需要: browser.executeScript("arguments[0].scrollIntoViewIfNeeded();", elm.getWebElement());
  • elm.getBoundingClientRect()-再次与先前的值进行比较(如果该值已更改,则需要滚动)