测试滚动

时间:2014-06-10 22:00:33

标签: angularjs protractor

在我的角度应用程序中,我有一个页面,侧面有导航链接,点击后,将页面向下滚动到匹配的元素。

如何在量角器中为此编写e2e测试?是否有类似“抓住第一个可见的h1”之类的东西?

3 个答案:

答案 0 :(得分:5)

您可以使用javascript的window.pageYOffset。 以下是我在自己的一个测试案例中完成的工作:

    browser.driver.sleep(2000);
    browser.executeScript('return window.pageYOffset;').then(function(pos) {
        expect(pos).to.be.at.most(100);
    });

100是我的预期职位。

注意:我使用的是mocha和chai而不是jasmine。所以,只需相应地更改最后一行。我也在等待2秒才完成滚动。

答案 1 :(得分:0)

你应该能够抓住页面中的第一个h1元素:

$$('h1').first().getText().then(function (h1Txt) {
  expect(h1Txt).toEqual('Correct h1 text');
});

或使用特定索引查找正确的h1:

$$('h1').then(function (h1tagList) {
  var h1Text = h1tagList[0].getText();
  expect(h1Text).toEqual('Correct h1 text');
});

如果它在尝试读取文本时在页面上不可见,则应该抛出类似无法访问的元素之类的错误。

答案 2 :(得分:-1)

您只需使用向下滚动功能:

var filter = browser.findElement(by.id('idvalue'));
var scrollIntoView = function () {
arguments[0].scrollIntoView();
}
browser.executeScript(scrollIntoView, filter);