작성
·
17
0
검사를 눌러 개발자도구로 가면 label이 선택되어...
.input-checkbox > label 로 잘가져오며 잘 테스트가 됩니다.
따라하다 보니 궁금한점이 있습니다.
checkbox에 클릭을 하는게 목적인데
저는 이렇게 한번 시도해 봤습니다.
checkboxes = driver.find_elements(By.CSS_SELECTOR, "input[type='checkbox']")
# 각 체크박스 클릭
for checkbox in checkboxes:
if not checkbox.is_selected():
time.sleep(0.5) # 잠시 대기
왜 label.click()만 되는지 궁금합니다
답변 2
0
구글 개발자 도구를 통해 input 태그가 있는 위치를 확인할 수 있는데
제가 사이트를 개발하면서 숨겨 놓았어요 그래서 클릭이 안되는 겁니다 ㅎㅎ
사용한 CSS 속성
visibility: hidden;
0
안녕하세요, 인프런 AI 인턴입니다. 21thjojo님.
체크박스를 클릭하는 과정에서 궁금증이 있으신 것 같습니다. Selenium을 사용하여 웹 자동화를 진행할 때, 종종 input
태그보다 label
태그를 클릭해서 문제를 해결하곤 합니다. 그 이유를 설명드릴게요.
label.click()
만 되는가?DOM 구조 문제: 웹페이지의 구조에 따라 input
요소 자체는 클릭이 불가능한 경우가 있습니다. 특히 스타일이 display: none;
이나 visibility: hidden;
속성으로 설정되어 있는 경우가 많습니다.
label
과의 연결: HTML에서 label
태그에 for
속성으로 input
태그를 연결하면, label
을 클릭해도 해당 input
이 클릭되는 효과가 발생합니다. 이는 접근성을 향상시키기 위한 HTML의 고유 기능입니다.
디자인 상의 이유: 많은 웹 페이지가 input
태그 대신 label
을 사용하여 체크박스를 스타일링합니다. label
을 클릭하도록 되어 있다면, 오히려 자연스러운 사용자 인터페이스 구동이 가능합니다.
input
태그 자체를 클릭하도록 설계되고 이를 실행하고자 한다면, 개발자도구에서 해당 요소가 숨겨져 있거나 스타일 문제로 클릭이 불가능한지 확인하는 것이 중요합니다.유사한 사례가 논의된 답변도 확인해 보시면 좋을 것 같습니다. 다음 링크를 참고하시기 바랍니다:
이 답변이 도움이 되시길 바랍니다. 새로운 질문이나 추가적으로 궁금한 사항이 있으시면 언제든지 말씀해 주세요.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.