请帮我解决selenium中的问题 java.lang.StringIndexOutOfBoundsException:范围 [0, -1) 超出长度 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();
}
}
我需要解决这个问题,以便在 Eclipse 中运行 selenium 并运行 Edge 或 Chrome 驱动程序
我尝试使用 ChromeDriver,没有收到任何错误。但是,我更改了代码的某些部分。在您的屏幕截图中,我看到您正在使用 JUnit 5。因此,在 Junit 5 中,没有
Before
,而是 BeforeEach
。
有一个前提,你必须遵守。在运行此代码之前下载 ChromeDriver 或 Edge 驱动程序。
public class Simple {
WebDriver driver;
@BeforeEach
public void setUp() {
WebDriverManager.chromedriver().setup();
ChromeOptions options = new ChromeOptions();
options.addArguments("--remote-allow-origins=*");
driver = new ChromeDriver(options);
driver.get("https://www.bmw.in/en/index.html");
}
@Test
public void testOpenBMWHomePage() {
String title = driver.getTitle();
System.out.println("Page title is: " + title);
}
@AfterEach
public void tearDown() {
driver.quit();
}
}
在 Maven 中你还应该有:
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.9.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>5.8.0</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.4.0</version>
</dependency>
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>5.8.0</version>
</dependency>