如果您知道要滚动到哪个元素(完成滚动后位于浏览器视口顶部的元素),则可以等待y
表示该元素的导航器的属性为零。以下是一个示例,您可以将其粘贴到 groovy 控制台中,该控制台转到一个页面,然后通过在 url 中使用它的 id 滚动到一个元素(我知道这里没有等待,滚动也没有动画,但我只想展示如何属性可以用来实现你想要的):
@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 the top of the page
go 'http://docs.codehaus.org/display/GROOVY/Creating+an+extension+module'
//an element we'll scroll to later
def elem = $('#Creatinganextensionmodule-Themoduledescriptor')
assert elem.y != 0
//scroll to the element
go 'http://docs.codehaus.org/display/GROOVY/Creating+an+extension+module#Creatinganextensionmodule-Themoduledescriptor'
assert elem.y == 0
}
所以你最终应该得到类似的东西:
waitFor { elementWeScrollTo.y == 0 }
甚至:
waitFor { !elementWeScrollTo.y }