执行mvn clean后AndroidDriver初始化失败 报Platform强转String异常
问题原因
该类转换异常是Selenium依赖版本与Appium Java客户端版本不兼容导致的。
执行mvn clean时Maven自动拉取了未做版本锁定的最新传递依赖,将Selenium升级到了和当前项目所用Appium客户端不匹配的高版本:高版本Selenium内部处理platformName字段时会直接读取org.openqa.selenium.Platform类型的枚举值,而旧版本Appium客户端初始化AndroidDriver时仍按字符串类型传入平台参数,触发类型强转失败。
这也是未修改业务代码、之前运行正常,执行clean后突然报错的核心原因——Maven自动升级了未锁定版本的传递依赖。
修复方案
按优先级选择对应方案即可:
- 快速回退方案(无需修改代码):在项目pom.xml中显式声明Selenium依赖,将版本锁定为一周前正常运行时的对应版本(通常Appium Java Client 7.x对应Selenium 3.141.59,Appium Java Client 8.x对应Selenium 4.x兼容版本),避免Maven自动拉取不匹配的高版本。配置完成后执行
mvn clean test即可恢复运行。 - 长期适配方案:修改能力参数传参逻辑,导入
org.openqa.selenium.Platform包,将原代码中字符串形式的platformName配置替换为枚举传参:
// 替换原代码 cap.setCapability("platformName", "Android"); cap.setCapability("platformName", Platform.ANDROID);
修改后锁定Selenium与Appium客户端的兼容版本,再执行测试即可。
排查辅助命令:执行
mvn dependency:tree可以查看当前项目实际引入的Selenium、Appium客户端版本,快速确认版本匹配关系。
内容的提问来源于stack exchange,提问作者André Kuljis
相关产品推荐
相关产品推荐

