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

解决Selenium中java.lang.StringIndexOutOfBoundsException异常问题

解决Selenium EdgeDriver运行时的java.lang.StringIndexOutOfBoundsException异常

在Eclipse中运行Selenium EdgeDriver代码时,触发java.lang.StringIndexOutOfBoundsException异常,异常信息为Range [0, -1) out of bounds for length 7。

运行代码

package adipolipkg;

import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.edge.EdgeDriver;

public class Simple {
    EdgeDriver driver;

    @Before
    public void men() {
        driver=new EdgeDriver();
        driver.get("https://www.bmw.in/en/index.html");
    }

    @Test
    public void sin () {
        driver.quit();
    }
}

相关截图展示了项目包结构、代码内容以及具体的异常堆栈信息。

解决方案

  • 匹配驱动与浏览器版本
    这是触发该异常的最常见原因:

    1. 打开Edge浏览器,进入「设置→关于Microsoft Edge」查看浏览器版本(比如125.x.x.x)
    2. 下载同主版本号的EdgeDriver,解压后将驱动文件放到系统PATH目录,或在代码中指定路径
    3. 若使用ChromeDriver,操作逻辑一致:查看Chrome版本,下载对应版本的驱动
  • 显式指定驱动路径
    不想配置系统PATH的话,可在代码中直接指定驱动位置,示例:

    @Before
    public void men() {
        // 替换为你的EdgeDriver实际路径
        System.setProperty("webdriver.edge.driver", "C:\\drivers\\msedgedriver.exe");
        driver = new EdgeDriver();
        driver.get("https://www.bmw.in/en/index.html");
    }
    
  • 更新Selenium依赖
    若用Maven/Gradle管理依赖,确保Selenium版本为4.x系列稳定版,避免版本兼容问题。Maven依赖示例:

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>4.19.0</version>
    </dependency>
    
  • 清理项目缓存
    在Eclipse中点击「项目→清理」,选择当前项目后确认,重新构建运行,排除旧缓存导致的异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 03:52:13