selenium - Is it possible to assert that the page has stopped scrolling in a waitFor -


i have page click "change" link displays section. when happens, page scrolls vertically bit visible section centered on screen.

my next step in test click inside newly shown container. since viewport scrolled, coordinates geb picks clickable element no longer accurate , geb tells me can't click link.

there's nothing can assert in waitfor in terms of visible content. i'm wondering if there way me waitfor content stop scrolling?

waitfor { // page no longer scrolling } 

if not, there way tell geb wait few seconds before moving on next event?

if know element you're scrolling (the element @ top of browser viewport when you're done scrolling) can wait y property of navigator representing element equal zero. following example can paste groovy console goes page , scrolls element using it's id in url (i know there no waiting here nor scrolling animated want show how property can used achieve want want):

@grapes([    @grab('org.gebish:geb-core:0.9.0'),    @grab('org.seleniumhq.selenium:selenium-firefox-driver:2.32.0') ])  import geb.browser  browser.drive {         //at top of page     go 'http://docs.codehaus.org/display/groovy/creating+an+extension+module'      //an element we'll scroll later     def elem = $('#creatinganextensionmodule-themoduledescriptor')     assert elem.y != 0      //scroll element     go 'http://docs.codehaus.org/display/groovy/creating+an+extension+module#creatinganextensionmodule-themoduledescriptor'     assert elem.y == 0 } 

so should end like:

waitfor { elementwescrollto.y == 0 } 

or even:

waitfor { !elementwescrollto.y } 

Comments

Popular posts from this blog

node.js - Bad Request - node js ajax post -

Why does Ruby on Rails generate add a blank line to the end of a file? -

keyboard - Smiles and long press feature in Android -