driver.execute_script("arguments[0].click()", element)이 작동하지 않습니다..
280
작성한 질문수 3
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time
import pandas as pd
from selenium.webdriver.support.select import Select
#드라이버 생성
driver = webdriver.Chrome()
#페이지 이동
driver.get("https://cafe.naver.com/startcodingofficial")
#유투브 후기 버튼 클릭
driver.find_element(By.CSS_SELECTOR, '#menuLink15').click()
#프레임 전환
iframe = driver.find_element(By.CSS_SELECTOR, '#cafe_main')
driver.switch_to.frame(iframe)
#50개씩 표시하기 클릭
element = driver.find_element(By.CSS_SELECTOR, '#listSizeSelectDiv > ul > li:last-child') #50개씩 버튼
# #해결방법 1. 태그를 보이게 만들고 클릭하기.
# driver.find_element(By.CSS_SELECTOR, '#listSizeSelectDiv > a').click() #15개씩 버튼 먼저클릭 해서 버튼 보이게 한 후
# element.click() #50개씩버튼 클릭
#해결방법 2. 자바스크립트 이용해서 태그 강제 클릭
driver.execute_script("arguments[0].click()", element)
time.sleep(1)저는 이 코드를 실행하면 에러가 나는게 아니라 50개씩 버튼이 안 눌러지고 코드가 끝나는데 왜그런걸까요...
답변 2
0
안녕하세요, 인프런 AI 인턴입니다.
gnslgnsdl3님, 주신 코드를 통해 실행 시 문제가 발생하는 상황을 이해하려고 하였습니다. driver.execute_script("arguments[0].click()", element)를 사용했음에도 버튼이 클릭되지 않는 경우, 여러 가지 원인을 고려할 수 있습니다:
Element Visibility: 버튼이 보이지 않거나 DOM에 제대로 로드되지 않은 상태에서 스크립트가 실행될 수 있습니다. 이런 경우, 클릭하려는 요소의 가시성을 보장하기 위해 실행 전에 대기 메카니즘이나 스크롤 조정이 필요할 수 있습니다.
JavaScript로 강제 클릭: Selenium의
execute_script를 사용해 강제로 클릭하는 방법이 효과적이지 않을 경우, 요소가 인터셉트되거나 다른 요소가 클릭하려는 요소를 막고 있을 가능성이 있습니다. 이때 특정 요소의 visibility를 조정하거나 화면에 띄우는 과정을 확인합니다.CSS Selector 확인: 사용된 CSS Selector가 페이지에서 적절히 적용되었는지를 점검하고, 필요한 경우 새롭게 select하여 접근해 보시기 바랍니다.
Console Error Check: 콘솔에 에러 메시지가 존재하는지 확인하고, 해당 정보가 해결의 실마리를 제공할 수 있습니다.
문제 해결의 실마리로 작업을 단계별로 확인하고, 필요 시 자바스크립트로 요소의 스타일이나 속성을 조정해보는 것도 방법입니다. 예를 들어, 버튼을 강제로 표시할 수 있다면 성공적으로 클릭할 확률이 높아집니다.
유사한 사례가 인프런 질문 게시판에서 다루어진 경우가 있습니다:
한 번 더 검토하셔서 문제가 지속된다면 추가적인 코드 수정이나 환경 설정을 살펴보실 것을 권장드립니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
셀레니움 환경설정 오류
0
48
2
네이버 로그인 관련
0
261
2
안녕하세요 셀레니움에 대해서 질문
0
85
1
크롤링 연습사이트 문의
0
97
2
선택자 질문
0
71
2
'특정 요소가 나타날 때까지 스크롤' 부분 에러
0
77
2
자동 로그인 질문
0
89
2
44강 제목, 링크
0
105
1
원하는 값이 없을 때
0
90
2
크롤링한 링크가 엑셀로 들어가면 작동이 안되요
0
227
2
셀레니움 PDF자료는 받을 수 있나요
0
100
2
글목록 추출하기
0
98
2
메일 자동화 로그인 중복방지문자해결 오류 및 명시적 대기 질문
0
88
2
강의 노트가 어디에 있는건가요?
0
80
2
강의 커리큘럼 질문
0
98
1
조건문 else 사용하지 않는 이유
0
76
2
셀레니움으로 접근할 수 없는 경우
0
95
2
웹페이지 변경
0
72
2
자바스크립트로 태그 선택 시 질문입니다.
1
64
2
수료증은 어떻게 받나요?
0
120
2
class명을 활용하여 선택자를 만들지 않는 경우..?
0
61
2
드라이버가 안 열려요
0
79
2
이거 해결방법 아시는 분?
0
121
2
네이버 지식인 크롤링..
0
202
2





