Selenium4设置隐式等待时出现Integer.parseInt方法参数不匹配报错
报错原因
- 参数类型不匹配:
Integer.parseInt(String, int)方法的第二个入参要求为int类型的进制标识,你的代码将Duration类型对象传入该位置,触发类型不匹配报错。 - 括号位置错误:你错误的将
Duration.ofSeconds()方法放入了Integer.parseInt()的入参列表中,导致参数传递逻辑完全错误。 - Selenium 4 API 变更:Selenium 4 中
implicitlyWait()方法仅接收Duration类型的单参数,不兼容旧版本双参数格式。
解决方法
首先修正参数传递逻辑,先将配置读取的字符串转换为int类型的秒数,再封装为Duration对象传入隐式等待方法:
// 分步写法(可读性更高) int implicitWaitSecond = Integer.parseInt(Config.getProperty("implicit.wait")); driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(implicitWaitSecond));
如果需要一行写完,注意括号的闭合位置:
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(Integer.parseInt(Config.getProperty("implicit.wait"))));
注意事项
- 提前导入
java.time.Duration包,避免类找不到报错 - 确保配置项
implicit.wait的值为合法正整数字符串,防止运行时抛出数字格式转换异常
内容的提问来源于stack exchange,提问作者Sakhi
相关产品推荐
相关产品推荐

