Вот сообщение об ошибке:
Задача: компиляция Java АКТУАЛЬНО
Задача: АКТУАЛЬНОСТЬ ProcessResources
Задача: АКТУАЛЬНОСТЬ классов
Задача: CrawlingTest.main() ОШИБКА
3 выполняемых задачи: 1 выполнена, 2 обновлены
Исключение в потоке «main» java.lang.AbstractMethodError: Класс получателя org.openqa.selenium.chrome.ChromeDriverService$Builder не определяет и не наследует реализацию разрешенного метода «abstract java.io.File findDefaultExecutable()» абстрактного класса
org.openqa.selenium.remote.service.DriverService$Builder.
на org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:437)
на org.openqa. selenium.chrome.ChromeDriverService.createDefaultService(ChromeDriverService.java:138) в
org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:72)
at
Nawa3.Nawa3.service.CrawlingTest.getChromeDriver(CrawlingTest.java:40)
at Nawa3.Nawa3.service.CrawlingTest.main(CrawlingTest.java:47)
ОШИБКА: Сборка завершилась с ошибкой.
- Что пошло не так:
Не удалось выполнить задачу ':CrawlingTest.main( )'.
- Попробуйте:
Запустите с параметром --info или --debug, чтобы получить больше результатов журнала.
Запустите --scan, чтобы получить полную информацию.
- Получите дополнительную помощь по адресу https://help. gradle.org
Ошибка сборки за 1 секунду
Файл класса
Вот файл класса, который я использую:
Код: Выделить всё
package Nawa3.Nawa3.service;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import java.time.Duration;
import java.util.ArrayList;
import java.util.List;
public class CrawlingTest {
private static WebDriver driver;
public static String WEB_DRIVER_ID = "webdriver.chrome.driver";
private static String WEB_DRIVER_PATH = "C:\\Users\\ASUS\\Downloads\\chromedriver-win64\\chromedriver-win64\\chromedriver.exe";
public static WebDriver getChromeDriver() {
if (System.getProperty("webdriver.chrome.driver") == null) {
System.setProperty("webdriver.chrome.driver", WEB_DRIVER_PATH);
}
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--remote-allow-origins=*");
chromeOptions.addArguments("--disable-web-security");
chromeOptions.addArguments("--disable-gpu");
chromeOptions.addArguments("--no-sandbox");
chromeOptions.addArguments("--disable-dev-shm-usage");
chromeOptions.addArguments("--disable-blink-features=AutomationControlled");
chromeOptions.addArguments("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36");
chromeOptions.addArguments("Accept-Language=ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7");
chromeOptions.addArguments("Accept=text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7");
WebDriver driver = new ChromeDriver(chromeOptions);
driver.manage().timeouts().pageLoadTimeout(Duration.ofSeconds(30));
return driver;
}
public static void main(String[] args) {
WebDriver driver = getChromeDriver();
String url = "https://map.naver.com/p/search/%ED%99%8D%EB%8C%80%EC%9E%85%EA%B5%AC%EC%97%AD%EB%A7%9B%EC%A7%91?c=16.24,0,0,0,dh";
List webElementList = new ArrayList();
String query = "span.place_bluelink.TYaxT";
String iframeId = "searchIframe";
try {
driver.get(url);
Thread.sleep(5000);
driver.switchTo().frame(driver.findElement(By.id(iframeId)));
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
webElementList = driver.findElements(By.cssSelector(query));
for (WebElement element : webElementList) {
System.out.println(element.getText());
}
driver.switchTo().defaultContent();
System.out.println("Page title is: " + driver.getTitle());
System.out.println("Current URL: " + driver.getCurrentUrl());
} catch (Exception e) {
System.out.println("An error occurred: " + e.getMessage());
} finally {
driver.quit();
}
}
}
Это мой файл build.gradle:
Код: Выделить всё
plugins {
id 'java'
id 'org.springframework.boot' version '3.0.2'
id 'io.spring.dependency-management' version '1.1.0'
}
group = 'Nawa3'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '17'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
// Selenium dependency
implementation 'org.seleniumhq.selenium:selenium-java:4.21.0'
implementation 'org.seleniumhq.selenium:selenium-chrome-driver:4.21.0'
// MariaDB dependency
implementation 'org.mariadb.jdbc:mariadb-java-client:3.0.10'
implementation('org.modelmapper:modelmapper:2.4.2')
developmentOnly("org.springframework.boot:spring-boot-devtools")
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
runtimeOnly 'com.mysql:mysql-connector-j'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
implementation group: 'org.jsoup', name: 'jsoup', version: '1.15.3'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
// JPA dependency
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0'
testImplementation 'org.junit.jupiter:junit-jupiter-engine:5.7.0'
testImplementation 'org.mockito:mockito-core:3.6.0'
testImplementation 'org.mockito:mockito-junit-jupiter:3.6.0'
}
tasks.named('test') {
useJUnitPlatform()
}
Операционная система: Windows 11 (64-разрядная версия)
Версия Java: OpenJDK 17.0.2
Версия Chrome: 125.0.6422.113 (официальная сборка) (64-разрядная версия)
ChromeDriver: версия 125.0 .6422.78 (загружается по этой ссылке)
Версия Selenium: 4.21.0
Описание проблемыЯ пытаюсь выполнить простой скрипт Selenium WebDriver с помощью ChromeDriver, но обнаруживаю следующую ошибку:
Код: Выделить всё
Exception in thread "main" java.lang.AbstractMethodError: Receiver class org.openqa.selenium.chrome.ChromeDriverService$Builder does not define or inherit an implementation of the resolved method 'abstract java.io.File findDefaultExecutable()' of abstract class org.openqa.selenium.remote.service.DriverService$Builder.
at org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:437)
at org.openqa.selenium.chrome.ChromeDriverService.createDefaultService(ChromeDriverService.java:138)
at org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:72)
at Nawa3.Nawa3.service.CrawlingTest.getChromeDriver(CrawlingTest.java:40)
at Nawa3.Nawa3.service.CrawlingTest.main(CrawlingTest.java:47)
Убедился, что путь к ChromeDriver указан правильно.
Проверил совместимость ChromeDriver и версии браузера Chrome.
Очистил и пересобрал проект.
Сделал кэши недействительными и перезапустил IDE.
Несмотря на эти шаги, проблема остается. Буду очень признателен за любую помощь или рекомендации по решению этой проблемы.
Пожалуйста, помогите мне. Проект остановлен на неделю...
Подробнее здесь: https://stackoverflow.com/questions/785 ... ss-org-ope