I am using nightwatch for e2etesting my app. One of the tests fails because it cannot scroll to the element that it is testing I suspect. Question do I need to scroll or is ther
There is a native method in nightwatch to get elements into view. (In general elements should always be scrolled into view from nightwatch/selenium. But if you want to do that by hand you can use getLocationInView():
return this.getLocationInView('#myElement')
.assert.visible('#myElement')
.click('#myElement')
Nightwatch also supports doing this directly via the Webdriver Protocol using moveTo() without any abstraction. In that case it would look more like:
const self = this;
return this.api.element('#myElement', (res) => {
self.api.moveTo(res.value.ELEMENT, 0, 0, () => {
self.assert.visible('#myElement');
self.click('#myElement');
})
});
(this was just written from top of my head, hope I didn't make a mistake)
But what could help in your case is changing seleniums element scroll behaviour in the config like:
firefox: {
desiredCapabilities: {
browserName: 'firefox',
javascriptEnabled: true,
acceptSslCerts: true,
elementScrollBehavior: 1
}
}
Default is 0 -> Elements are scrolled to top of page
elementScrollBavior 1 -> Elements are scrolled to bottom of page