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
반응형
'잡다 > 프로그래밍' 카테고리의 다른 글
[파이썬] 에러 'conda' 용어가 cmdlet, 함수, 스크립트 파일 또는.... (0) | 2023.09.07 |
---|---|
[파이썬(Python)] 셀레니움(selenium) 크롬 열고 새탭 열기 (0) | 2023.03.14 |
[파이썬(Python)] 넘파이(numpy) 설치 / 버전 확인 (0) | 2023.02.22 |
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbd in position 0: invalid start byte (2) | 2023.01.21 |