<dependencies>
<!-- Selenium Java 客戶端 -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.15.0</version> <!-- 請使用最新穩定版 -->
</dependency>
<!-- JUnit 5 測試框架 (可選) -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.10.2</version>
<scope>test</scope>
</dependency>
<!-- WebDriverManager 自動管理驅動程式 (強烈推薦) -->
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>5.6.2</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
<configuration>
<source>11</source>
<target>11</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
**不再需要手動下載 chromedriver/geckodriver 並設定 System Property!**
import io.github.bonigarcia.wdm.WebDriverManager;
import org.junit.jupiter.api.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class SeleniumTest {
@Test
public void testChrome() {
// 自動下載對應 Chrome 版本的驅動程式並設定路徑
WebDriverManager.chromedriver().setup();
WebDriver driver = new ChromeDriver();
try {
driver.get("https://www.google.com");
System.out.println("頁面標題: " + driver.getTitle());
} finally {
driver.quit();
}
}
}
| 瀏覽器 | WebDriverManager 方法 | Driver 類別 |
|---|---|---|
| Chrome | `WebDriverManager.chromedriver().setup()` | `ChromeDriver` |
| Firefox | `WebDriverManager.firefoxdriver().setup()` | `FirefoxDriver` |
| Edge | `WebDriverManager.edgedriver().setup()` | `EdgeDriver` |
| Safari | 內建支援 (macOS) | `SafariDriver` |
ChromeOptions options = new ChromeOptions();
options.addArguments("--headless", "--no-sandbox", "--disable-dev-shm-usage");
WebDriver driver = new ChromeDriver(options);