You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 10:29:52