Protractor: Scroll down

后端 未结 9 432
有刺的猬
有刺的猬 2020-11-30 04:59

I have an button on my page that is visible when the user scrolls down. Because of this, protractor tests give me an error:

UnknownError: unknown erro

相关标签:
9条回答
  • 2020-11-30 05:25

    You need to wait for the promise to be solved. The following example comes from an open issue

    browser.executeScript('window.scrollTo(0,0);').then(function () {
        page.saveButton.click();
    })
    

    Update: This is an old question (May of 2014), but still it is getting some visitors. To clarify: window.scrollTo(0, 0) scrolls to the top left corner of the current page.

    If you want to scroll to the bottom of your page you could call

    window.scrollTo(0, document.body.scrollHeight)

    as mentioned by @jsuser in this answer

    A more modern approach would be using

    browser.actions().mouseMove(element).perform();

    Upvotes to @MartinBlaustein in this answer

    0 讨论(0)
  • 2020-11-30 05:26

    I found that creating a util helper and using it inside page objects (or the test files themselves) helped. This seems to work well for me:

    utils.js

    module.exports = {
      scrollIntoView: function(el) {
        browser.executeScript(function(el) {
          el.scrollIntoView();
        }, el.getWebElement());
      }
    }
    

    inside page object somewhere...

    var scrollIntoView = require('../utils').scrollIntoView;
    
    module.exports = {
      clickBackBtn: function() {
        var el = element(by.buttonText('Go back'));
        scrollIntoView(el);
        el.click();
        return;
      }
    }
    

    in the test itself...

    it('should allow the user to go back to the profile page', function() {
      PageObject.clickBackBtn();
      expect(browser.getCurrentUrl()).toContain('/user/profile');
    });
    
    0 讨论(0)
  • 2020-11-30 05:30

    I found an easier way. If you want to scroll to an element you can use

        browser.actions().mouseMove(element).perform();
    

    After that the browser will be focusing the element.

    0 讨论(0)
提交回复
热议问题