如何让Laravel Dusk的scrollIntoView方法正常运行及适配版本查询
适配方案:解决Laravel Dusk scrollIntoView 执行失效问题
核心适配版本组合(兼容现有Laravel 6.2、PHP 7.2基线)
根据当前环境的版本约束,无需调整Laravel、PHP版本,仅需匹配以下两类依赖的稳定版本,即可解决scrollIntoView脚本静默执行失效的问题:
- 优先推荐的稳定组合
laravel/dusk:6.22.0:该版本是Laravel 6.x生态下最后一个兼容PHP 7.2的Dusk小版本,修复了6.11~6.21版本存在的脚本执行上下文绑定异常、Chrome 88+版本DevTools协议权限拦截问题,完全支持原生scrollIntoView()方法的正常调用,且不会触发跨版本依赖冲突- 可保留现有
ChromeDriver:88.0.4324.96版本无需替换,该驱动版本与升级后的Dusk 6.22.0完全匹配,不存在协议适配问题
- 低改动备选组合(无需升级Dusk版本)
- 保持现有
laravel/dusk:6.11版本不变 - 将ChromeDriver降级至
86.0.4240.22,该版本驱动对应的Chrome浏览器DevTools协议未引入88版本的权限校验逻辑,可兼容Dusk 6.11的JS注入方式,不会拦截scrollIntoView的脚本执行
- 保持现有
落地操作注意事项
- 禁止将laravel/dusk版本升级至6.23及以上,该版本开始要求PHP 7.3+运行环境,会与当前PHP 7.2基线产生依赖冲突
- 替换依赖时不要使用Dusk自带的驱动自动安装功能,该功能默认拉取与当前Chrome浏览器版本匹配的最新驱动,可能引入后续版本的协议不兼容问题
- 调用scrollIntoView时优先使用Dusk提供的原生方法,不要手动通过
script()方法注入自定义JS实现滚动逻辑,避免触发上下文绑定异常
风险提示:不要使用ChromeDriver 90及以上版本,这类版本已经完全移除对旧版DevTools协议的支持,会导致全系列Dusk 6.x版本出现元素定位、脚本执行类问题
内容的提问来源于stack exchange,提问作者Archiez
相关产品推荐
相关产品推荐

