작성
·
144
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
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")
제가 위 코드로 테스트 해봤을 때 정상 작동 하는데,
선택자에 문제가 있거나 사이트에서 셀레니움을 막거나 하는 경우는 아닌거 같습니다 ㅎㅎ
제가 작성한 코드로
다시 한번 테스트 해보세요!
죄송합니다. 설명이 부족했습니다.
예를들어 네이버 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 전달이 안됩니다)
혹시 애초에 선택을 잘못한건지 놓치고 있는 부분이 있는건지 몰라서 여쭤봅니다.