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

Selenium 4调用Emulation.setDeviceMetricsOverride参数类型不匹配报错问题

问题原因

该报错为参数类型不匹配导致:Selenium 4 封装的CDP Emulation.setDeviceMetricsOverride 方法要求 前4个参数为包装类类型:Integer、Integer、Number、Boolean,你当前传入的是基础数据类型 int、int、int、boolean。虽然Java支持自动装箱,但在多参数搭配Optional泛型的场景下,编译器无法自动完成类型匹配,就会触发参数不适用的错误。
部分场景下如果错误导入第三方库(如Guava)的Optional类,和方法要求的java.util.Optional不兼容,也会触发同类报错。

解决方案
  • 将前4个基础类型参数显式转换为对应包装类即可,修改后的代码示例如下:
devTools.send(Emulation.setDeviceMetricsOverride(
    Integer.valueOf(600),
    Integer.valueOf(1000),
    Integer.valueOf(50), // 任意Number子类都可,也可传入Double.valueOf(50)
    Boolean.TRUE,
    Optional.empty(), Optional.empty(), Optional.empty(),
    Optional.empty(), Optional.empty(), Optional.empty(),
    Optional.empty(), Optional.empty(), Optional.empty()
));
  • 检查当前类的Optional导入语句,确保导入的是JDK自带的java.util.Optional,而非其他第三方库的同名类。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 05:15:03