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

指定iexplorer驱动运行Serenity测试却提示需配置Safari路径

解决Serenity测试指定IE驱动却报错找Safari.exe的问题

从你的错误堆栈信息里能看到一个反常的关键点:InternetExplorerDriverBuilder居然在尝试实例化SafariDriver,这明显是Serenity的驱动构建逻辑出了问题,大概率是版本bug或者依赖冲突导致的。下面是具体的解决步骤:

1. 优先升级Serenity核心依赖版本

旧版本的Serenity(比如1.x系列)存在这个驱动构建器的bug,直接升级到稳定的新版本就能解决。建议把serenity-core和serenity-jbehave(如果你用JBehave的话)升级到2.0.0以上的稳定版,比如最新的2.x系列版本。

修改你的pom.xml中的对应依赖:

<dependency>
    <groupId>net.serenity-bdd</groupId>
    <artifactId>serenity-core</artifactId>
    <version>2.9.0</version> <!-- 可替换为Maven仓库中的最新稳定版 -->
</dependency>
<dependency>
    <groupId>net.serenity-bdd</groupId>
    <artifactId>serenity-jbehave</artifactId>
    <version>2.9.0</version>
</dependency>

2. 确认IE驱动配置的正确性

虽然你已经指定了相关参数,但再检查以下几点:

  • webdriver.ie.driver的路径格式:Windows路径中的反斜杠要转义成\\,或者直接用正斜杠/,比如:
    mvn clean verify -Dentry_point="**/*SmokeTestSuite.java" -Dwebdriver.driver="iexplorer" -Dwebdriver.ie.driver="C:/your/path/IEDriverServer.exe"
    
  • IEDriverServer版本要和IE11匹配:下载对应IE11的32位或64位驱动(注意你的系统和IE的位数),避免版本不兼容
  • IE的保护模式设置:确保IE所有区域的保护模式状态一致(全部开启或全部关闭),这是IE驱动的硬性要求

3. 排查依赖冲突

检查你的pom.xml是否手动添加了独立的selenium-java依赖。Serenity本身会自带适配版本的Selenium依赖,手动添加的独立依赖可能会和Serenity的内置版本冲突,导致驱动实例化逻辑混乱。如果不是必须的话,建议移除独立的Selenium依赖;如果必须保留,确保版本和Serenity依赖的Selenium版本完全一致。

4. 清理Maven缓存并重新构建

缓存的旧依赖文件可能导致异常,执行以下命令清理缓存并重新安装依赖:

mvn clean install -U

完成后再重新运行你的测试命令,应该就能正常启动IE驱动了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:28:37