강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

shpark님의 프로필 이미지
shpark

작성한 질문수

[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)

(고급 기술) 셀레니움 클릭이 안될때 강제로 클릭하게 만들기 (+ StaleElementException 해결방법)

자바스크립트로 태그 선택 시 질문입니다.

작성

·

17

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

 

안녕하세요. 해당 강의에서 아래 2가지 방법으로 '50개씩' 선택하는 법을 알려주셨는데,

  1. 드롭박스 선택 후 > 50개씩 선택

  2. 드롭박스 선택 없이 자바스크립트로 50개씩 선택

근데 2번의 경우, 자바스크립트 인자로 element를 보내야해서 먼저 element 선언을 해줘야하는데, 드롭박스 클릭을 하지 않으면 여전히 element 찾는 과정에서 NoSuchElementException 오류가 납니다. 드롭박스를 열어야 하는건가요 ..? 그렇다면 1번과 차이가 무엇인지 궁금합니다!

답변 2

0

스타트코딩님의 프로필 이미지
스타트코딩
지식공유자

강의를 촬영할 당시 HTML 구조와 현재 HTML 구조가 다릅니다.

그래서 실습은 똑같이 진행되지 않을겁니다.

강의는 강의대로 봐주시면 돼요!

핵심은 NosuchElementException 과 StaleElementReferenceException 이 발생했을때 어떻게 처리하는 가를 알려주고 있는거고.

 

현재 시점에서는 모두 드롭박스를 열고, element 를 찾고 클릭해줘야 합니다.

 

shpark님의 프로필 이미지
shpark
질문자

아하 넵 감사합니다!

0

안녕하세요, 인프런 AI 인턴입니다.

shpark님, 자바스크립트를 활용한 태그 선택 혹은 클릭 작업과 관련하여 혼란이 있으신 것 같아서 도와드리겠습니다. 말씀하신 부분에서는 드롭박스의 항목을 선택하는 두 가지 방법에 대해 궁금증을 가지고 계신 것으로 보입니다.

  1. 드롭박스 선택 후: 처음 드롭박스를 클릭해서 열고, 드롭다운 메뉴에서 하위 항목(예: 50개씩)을 선택하는 방식입니다. 이는 전통적인 접근 방법으로, 브라우저에서 드롭박스를 직접 조작하여 항목을 선택합니다.

  2. 자바스크립트를 통한 선택: 드롭박스를 물리적으로 여는 과정 없이 직접 JavaScript를 통해 하위 항목을 선택하는 방법입니다. 하지만 이 방식에서는 해당 요소가 DOM에서 접근 가능해야 합니다. 즉, 드롭박스를 열어야 선택할 수 있는 경우라면 자바스크립트로 직접 클릭하기 전에 CSS로 스타일을 변경하거나 해당 요소를 강제로 보여줘야 합니다.

NoSuchElementException은 셀렌이움이 현재 페이지에서 해당 요소를 찾지 못했을 때 발생하는 오류입니다. 이는 요소가 숨겨져 있거나 로드가 되지 않아 발생할 수 있는데, 자바스크립트를 통해 강제로 요소를 클릭하는 경우에는 DOM에서 요소가 접근 가능한 상태인지 확인해야 합니다. 즉, 자바스크립트로 요소 접근이 가능하려면 해당 요소가 DOM에 포함되어 있어야 하고, 이를 보이게 조정해야 할 수도 있습니다.

유사한 질문 및 문제 해결을 참고하면 도움이 될 수 있습니다:
- driver.execute_script 활용 및 NoSuchElementException 해결 방법
- 드롭다운 메뉴에서 셀렉션 하는 다양한 방법

하여, 자바스크립트를 통해 요소를 강제로 조작하는 과정이 정상적으로 수행되려면 접근성을 보장하거나 자바스크립트로 필요한 동작을 추가적으로 수행하여야 할 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

shpark님의 프로필 이미지
shpark

작성한 질문수

질문하기