如何用Karate UI获取网页当前滚动位置并验证回顶按钮功能?
Karate UI测试中获取页面滚动位置的正确方法
你遇到的问题是因为自定义函数getPosition运行在Karate的本地脚本上下文,而非浏览器环境,所以无法访问浏览器的window对象。正确的做法是通过Karate的script命令执行浏览器端的JavaScript来获取滚动位置。
解决方案:
直接获取滚动位置:
使用script命令直接在浏览器环境中执行JS,返回滚动位置:* def ypos = script('return window.scrollY')封装成可复用函数:
如果需要多次调用,可以封装成Karate函数,但内部仍需通过script访问浏览器环境:* def getScrollY = function(){ return script('return window.scrollY') } * def ypos = getScrollY()
完整测试示例(验证返回顶部按钮):
# 滚动到页面下方 * script('window.scrollTo(0, 1000)') # 验证滚动后的位置 * def afterScroll = script('return window.scrollY') * assert afterScroll > 0 # 点击返回顶部按钮 * click('//button[contains(text(),"返回顶部")]') # 等待滚动完成(可选,确保页面有足够时间滚动到位) * waitFor('window.scrollY == 0') # 验证最终滚动位置 * def finalScroll = script('return window.scrollY') * assert finalScroll == 0
内容的提问来源于stack exchange,提问作者Ithuvanian
相关产品推荐
相关产品推荐

