잡다/프로그래밍

[파이썬(Python)] 셀레니움(selenium) 클릭이 되지 않을 경우 대처법

크아오크아 2023. 2. 3. 11:15
728x90
반응형

기존 Selenium 클릭

 

셀레니움을 통해 특정 element를 클릭할 시 아래와 같은 방법으로 수행

driver.find_element(By.XPATH, "/html/body/header/div[1]/div/a[3]").click()

하지만 특정 웹사이트의 경우 클릭이 되지 않는 경우가 있다.

 

 

대처법

 

해당 element를 click()이나 submit() 함수를 이용해 클릭하는 것이 아니고, send_keys를 이용해 클릭을 시도

driver.find_element_by(By.XPATH, "/html/body/header/div[1]/div/a[3]").send_keys(Keys.ENTER)

 

그래도 안되면 아래 방법으로 시도

이 방법은 javascript 명령어를 사용하여 스크립트를 실행하는 명령으로, arguments는 함수 호출 시, 전달인자들이 배열 형태로 저장된 객체임.

arguments[0]은 그중 첫 번째 인자이고, 그 인자가 우리가 xpath로 찾아준 element인 것.


따라서 element에 대해 click() 명령을 js 명령어로 내리는 것.

 

element = driver.find_element(By.XPATH, "/html/body/header/div[1]/div/a[3]")
driver.execute_script("arguments[0].click();", element)

 

728x90
반응형