문제발생
yml 파일로 환경변수를 분리하려고 했다.
@Configuration
@ConstructorBinding
@RequiredArgsConstructor
@ConfigurationProperties(prefix = "selenium")
public class SeleniumConfig {
private final String driverName;
public ChromeDriver chromeDriver() {
System.setProperty("webdriver.chrome.driver", driverName);
ChromeOptions options = new ChromeOptions();
options.addArguments("--remote-allow-origins=*");
ChromeDriver driver = new ChromeDriver(options);
driver.manage().timeouts().implicitlyWait(Duration.ofMinutes(3));
driver.manage().window().maximize();
return driver;
}
}
@ConfigurationProperties 로 yml 값을 불러오고 @ConstructorBinding 으로 값도 바인딩 했다.
이제 Application 클래스로 가서 @EnableConfigurationProperties 로 config 파일만 설정해주면 되겠지 싶었다.
하지만 Application 클래스의 설정을 해주니 아래와 같은 에러창이 나를 맞아주었다.
문제해결
@Configuration 때문에 발생한 에러였다.
Application 클래스로의 @EnableConfigurationProperties 로 config 파일의 빈 등록을 해주기 때문에
@Configuration 을 달면 위와 같은 오류가 발생하는 것이었다.
그러므로 아래처럼 @Configuration 을 빼주면 정상 동작한다.
@ConstructorBinding
@RequiredArgsConstructor
@ConfigurationProperties(prefix = "selenium")
public class SeleniumConfig {
private final String driverName;
public ChromeDriver chromeDriver() {
System.setProperty("webdriver.chrome.driver", driverName);
ChromeOptions options = new ChromeOptions();
options.addArguments("--remote-allow-origins=*");
ChromeDriver driver = new ChromeDriver(options);
driver.manage().timeouts().implicitlyWait(Duration.ofMinutes(3));
driver.manage().window().maximize();
return driver;
}
}
'픽시브 크롤링 해보기 > 트러블 슈팅' 카테고리의 다른 글
[BE] yml 파일로 OS별로 다른 환경변수 분리하기 (0) | 2023.12.16 |
---|---|
[BE] 빌드 이후 이미지를 저장한 이미지를 렌더링하려 하면 엑박 (0) | 2023.12.13 |
CORS 문제 해결 (0) | 2023.12.03 |
[BE] 윈도우와 맥의 셀레니움 크롬드라이버 설정 차이로 인한 깃허브 관리 문제 해결(JAVA) (0) | 2023.11.20 |
[BE] Mac 에서 셀레니움 사용 시 크롬 드라이버 실행 문제 (0) | 2023.11.15 |