Dev/JAVA

JAVA 셀레니움 a태그 클릭 안됨 element click intercepted: Element is not clickable at point 오류 해결

Aloner 2024. 4. 25. 09:58
728x90
반응형

안녕하세요 Aloner입니다

회사에서 최근 셀레니움을 사용한 자동화 프로그램을 개발하고 있어요

셀레니움으로 개발할 때 Element가 클릭되지 않는 상황이 발생하여 그에 따른 해결방법을 공유하고자 합니다

오류 내용은 제목 그대로 Element is not clickable at point라는 오류였습니다

WebElement test = driver.findElement(By.xpath("//*[@id=\"tabs-fulltext_pdf\"]/div[1]/table[1]/tbody/tr[2]/td[4]/a"));
test.click();

제가 클릭하려고 하는 요소는 a태그로 위와 같이 불러다 쓰면 정상작동해야 하는 코드인데 오류가 뜨더라구요

구글링을 해보니 다른 분들은 WebDriverWait를 써서 클릭할 수 있는 준비가 되었을 때 써라, a태그 위의 한 단계 상위 요소를 클릭해라 등등 방법을 해결방법으로 내놓으셨지만 제 문제가 해결되진 않았습니다

test.sendKeys(Keys.ENTER);

제가 해결한 방법은 click 메소드가 아닌 sendKeys 메소드를 사용하는 것이었어요

sendKeys 는 input에 text 넣거나 키조작을 보내고 싶을 때 쓰는 메소드이지만 ENTER 명령어는 마우스 클릭처럼 사용할 수 있더라구요

아마 위와 같은 해결방법으로 a태그 클릭이 되지 않는 오류가 해결되지 않아 제 블로그까지 유입되셨을 것 같아요

한번 제가 말씀드린 sendKeys 방법으로 시도해보시기 바랍니다

WebDriverWait wait = new WebDriverWait(driver, 20);
WebElement id = wait.until(ExpectedConditions.elementToBeClickable(driver.findElement(By.id("email"))));
id..sendKeys(Keys.ENTER);

참고로 WebDriverWait는 위 코드처럼 사용할 수 있어요

elementToBeClickable은 요소가 클릭할 준비가 완료될 때까지 기다리는 메소드

urlToBe는 url이 다 업로드 될 때까지 기다리는 메소드

728x90
반응형