Тест на прокрутку

В моем угловом приложении у меня есть страница с навигационными ссылками сбоку, которая при нажатии прокручивает страницу вниз до соответствующего элемента.

Как мне написать тест e2e для этого в транспортире? Есть что-то вроде "Захватить первый видимый h1" или что-то в этом роде?


person bioball    schedule 10.06.2014    source источник


Ответы (3)


Для этого вы можете использовать javascript window.pageYOffset. Вот как я это сделал в одном из своих тестов:

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

Где 100 — моя ожидаемая позиция.

Примечание: я использую мокко и чай вместо жасмина. Итак, просто измените последнюю строку соответствующим образом. Также я жду 2 секунды, пока моя прокрутка не завершится.

person Priyanshu Chauhan    schedule 31.03.2015
comment
Вы только что спасли день здесь. :) - person germanio; 25.03.2016

Вы должны иметь возможность захватить первый элемент 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');
});

Если он не виден на странице в то время, когда он пытается прочитать текст, он должен выдать ошибку, например, элемент недоступен или что-то в этом роде.

person willko747    schedule 24.07.2014

Вы можете просто использовать функцию прокрутки вниз:

var filter = browser.findElement(by.id('idvalue'));
var scrollIntoView = function () {
arguments[0].scrollIntoView();
}
browser.executeScript(scrollIntoView, filter);
person Ziwdigforbugs    schedule 12.06.2014
comment
Это не совсем то, что я ищу. Страница автоматически прокручивается при нажатии на ссылку, и я хотел бы проверить правильность положения прокрутки. - person bioball; 12.06.2014