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

如何在Vaadin 14.10.0中禁用Live Reload Widget?

解决Vaadin开发模式下Live Reload Widget遮挡UI元素的问题

针对你遇到的Vaadin Live Reload Widget(vaadin-devmode-gizmo)遮挡UI导致Selenium测试失败的问题,以下是几种无需切换到生产模式的解决办法:

1. 修正配置参数名

你之前尝试的vaadin.devmode.devTools.enabled参数不正确,正确的用于关闭gizmo的配置项是:

  • 在application.properties(或测试专用的application-test.properties)中添加:
    vaadin.dev-mode.gizmo.enabled=false
    
  • 或者启动时用JVM参数:
    -Dvaadin.dev-mode.gizmo.enabled=false
    

这个参数是Vaadin 23+版本专门用于控制开发模式下gizmo显示的开关,之前的参数名属于混淆了其他配置项。

2. 在Selenium测试中强制隐藏元素

如果配置方法仍不生效,可以在测试代码中直接通过JavaScript隐藏这个gizmo元素,确保测试不受影响:

// 初始化WebDriver后执行该代码
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("document.querySelector('vaadin-devmode-gizmo').style.display = 'none';");

这种方法无需修改应用配置,直接在测试层面解决遮挡问题,适合需要保留开发模式其他功能的场景。

3. 为测试环境单独禁用Vaadin开发模式

创建测试专用的配置文件application-test.properties,添加以下配置:

vaadin.devmode.enabled=false

然后在运行Selenium测试时激活test profile(Spring Boot默认支持),这样测试环境下Vaadin不会加载开发模式相关组件,但开发环境仍可正常使用开发模式。

测试错误信息确认

你遇到的错误明确指向vaadin-devmode-gizmo拦截了点击事件:

Element ... is not clickable at point (1857, 953). Other element would receive the click:

以上方法都可以有效解决这个遮挡问题,根据你的测试场景选择最合适的方式即可。

内容的提问来源于stack exchange,提问作者ulim

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 20:55:08