Trong bài này các bạn sẽ tìm thấy các lỗi Selenium WebDriver phổ biến nhất và các giải pháp cho các lỗi đó. 🙂
1 – java.lang.IllegalStateException: The driver executable does not existCode
package seleniumWebDriverExample; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class main { public static void main (String[] args){ System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir")+"//chromedriver.exe"); WebDriver chromeDriver = new ChromeDriver(); chromeDriver.get("http://www.google.lv"); } }
Error Message
Exception in thread "main" java.lang.IllegalStateException: The driver executable does not exist: D:\PROJECTS\workspace\MyPractice\SeleniumWebDriver\chromedriver
Nguyên nhân
Không tìm thấy chromedriver
Giải pháp
- Kiểm tra lại đường dẫn đến chromedriver cho đúng.
2 – java.lang.IllegalStateException: The driver is not executable
Code: như trên nhưng chỉnh lại đường dẫn đúng tới chromedriver
Error Message
Exception in thread "main" java.lang.IllegalStateException: The driver is not executable: D:\PROJECTS\workspace\MyPractice\SeleniumWebDriver\chromedriver
Nguyên nhân
Version của Chromedriver không đúng với OS
Giải pháp
- Kiểm tra lại version của chromedriver đúng với OS trên máy bạn
3 – “chromedriver” cannot be opened because the developer cannot be verified. Unable to launch the chrome browser
Error Message
“chromedriver” cannot be opened because the developer cannot be verified. Unable to launch the chrome browser
Nguyên nhân
Lỗi này xảy ra khi bạn cài đặt Chromedriver trên Mac OS và cố chạy nó ở lần đầu tiên bởi vì Mac OS
The error might occur when you install Chromedriver on a Mac OS and try to run it for the first time. That happens because Mac OS mặc định chặn chromedriver binary.
Giải pháp
Giải pháp là làm cho Mac OS tin cậy Chromedriver binary. Thực hiện theo 2 bước như sau:
Bước 1: Tìm đường dẫn chromedriver binary
Tìm đường dẫn của chromedriver binary, run command sau:
which chromedriver
Kết quả trả về giống như sau
/usr/local/bin/chromedriver
Bước 2: Bỏ kiểm dịch cho chromedriver binary
Run command sau để gỡ bỏ cách ly, để Mac OS tin cậy chromedriver binary
xattr -d com.apple.quarantine /usr/local/bin/chromedriver
Ok, giờ bạn hãy quay lại test script và chạy lại chromedriver. Lỗi sẽ không còn xuất hiện nữa.
4 – [ERROR] Source option X is no longer supported. Use Y or later.
Error Message
[ERROR] Source option 1.5 is no longer supported. Use 1.6 or later. [ERROR] Target option 1.5 is no longer supported. Use 1.6 or later.
Giải pháp
Cách 1: Chỉnh version của maven source/ target bằng cách thêm properties vào pom.xml file như sau.
Trong ví dụ này thì version ít nhất là 1.6
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>SingletonDesignPattern_Selenium</artifactId> <version>1.0-SNAPSHOT</version> <properties> <maven.compiler.source>18</maven.compiler.source> <maven.compiler.target>18</maven.compiler.target> </properties> </project>
You can specify maven source/target version by adding these properties to your pom.xml file
Cách 2: Thêm Maven compiler plugin vào file POM.xml. Bạn cần đảm bảo dùng đúng version của source and target dựa vào JDK trên máy bạn.
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>SingletonDesignPattern_Selenium</artifactId> <version>1.0-SNAPSHOT</version> <build> <pluginManagement> <plugins> <!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-compiler-plugin --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>11</source> <target>11</target> </configuration> </plugin> </plugins> </pluginManagement> </build> </project>