인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

비니비니님의 프로필 이미지
비니비니

작성한 질문수

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

네이버 로그인 자동화 프로그램 제작하기

자동로그인 구현방법 문의

작성

·

155

0

안녕하세요.

네이버 자동로그인 강의를 보고 실습한 뒤

다른사이트(영풍문고) 자동로그인을 구현해보던 중 아이디 입력창의 선택자 확인방법이 네이버와 다른건지 잘 확인이 안되는데 혹시 어떻게 확인하면 될까요?

 

<input name="id" type="text" tabindex="5" maxlength="16" class="textbox focus" style="ime-mode:disabled;" placeholder="아이디" title="아이디" onkeypress="enterSearch();" onfocus="pfocus(this);" onblur="pblur(this);" value="" data-gtm-form-interact-field-id="0">

답변 1

0

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

확인이 안된다는게 어떤 의미일까요?

copy selector가 동작하지 않는다는 말씀 일까요? ㅎㅎ

비니비니님의 프로필 이미지
비니비니
질문자

죄송합니다. 설명이 부족했습니다.

예를들어 네이버 id 입력창 선택 후 Copy -> Copy Selector 를 하면 '#id' 로 선택자가 잘 복사되는데,

https://www.ypbooks.co.kr/login.yp 이 사이트에서 id입력창 선택 후 Copy -> Copy Selector 를 하면 'body > table > tbody > tr > td > table:nth-child(1) > tbody > tr:nth-child(4) > td > form > table > tbody > tr:nth-child(4) > td:nth-child(2) > input' 가 복사되며 이를 id = driver.find_element(By.CSS_SELECTOR, "body > table > tbody > tr > td > table:nth-child(1) > tbody > tr:nth-child(4) > td > form > table > tbody > tr:nth-child(4) > td:nth-child(2) > input" 이렇게 실행하면 작동이 안됩니다.(ID 전달이 안됩니다)

혹시 애초에 선택을 잘못한건지 놓치고 있는 부분이 있는건지 몰라서 여쭤봅니다.

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

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time

# 드라이버 생성
driver = webdriver.Chrome()

# 1. 로그인 페이지 이동
driver.get("https://www.ypbooks.co.kr/login.yp")
time.sleep(1)

# 2. 아이디 입력
id = driver.find_element(By.CSS_SELECTOR, "body > table > tbody > tr > td > table:nth-child(1) > tbody > tr:nth-child(4) > td > form > table > tbody > tr:nth-child(4) > td:nth-child(2) > input")
id.send_keys("test")
스타트코딩님의 프로필 이미지
스타트코딩
지식공유자

제가 위 코드로 테스트 해봤을 때 정상 작동 하는데,
선택자에 문제가 있거나 사이트에서 셀레니움을 막거나 하는 경우는 아닌거 같습니다 ㅎㅎ

제가 작성한 코드로

다시 한번 테스트 해보세요!

비니비니님의 프로필 이미지
비니비니
질문자

아..감사합니다.

제가 실수한것 같습니다.

올려주신 코드로 다시 해보니 잘 됩니다.

감사드려요~~!!

비니비니님의 프로필 이미지
비니비니

작성한 질문수

질문하기