해결된 질문
작성
·
866
0
선생님 유익한 강의 정말 잘 듣고 있습니다..!
셀레니움 가이드 강의에서 브라우저 꺼짐 방지 코드도 알려주셨는데 똑같이 따라해도 코드가 전부 실행되고 로그인이 완료되면 브라우저가 자동으로 꺼지는데 왜 그럴까요..?
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
#크롬 드라이버 자동 업데이트
from webdriver_manager.chrome import ChromeDriverManager
import time
import pyautogui
import pyperclip
#브라우저 꺼짐 방지
chrome_options = Options()
chrome_options.add_experimental_option("detach", True)
#불필요한 에러 메시지 없애기
chrome_options.add_experimental_option("excludeSwitches", ["enable-logging"])
service = Service(excutable_path=ChromeDriverManager().install())
driver = webdriver.Chrome(service=service, options=chrome_options)
#웹페이지 주소로 이동
driver.implicitly_wait(5) #웹페이지가 로딩될 때까지 5초는 기다림
driver.maximize_window() #화면 최대화
driver.get("https://nid.naver.com/nidlogin.login?mode=form&url=https://www.naver.com/")
#아이디 입력창
id = driver.find_element(By.CSS_SELECTOR, "#id")
id.click()
pyperclip.copy("a06015")
pyautogui.hotkey("ctrl", "v")
time.sleep(2)
# id.send_keys("a06015")
#비밀번호 입력창
pw = driver.find_element(By.CSS_SELECTOR, "#pw")
pw.click()
pyperclip.copy("")
pyautogui.hotkey("ctrl", "v")
time.sleep(2)
# pw.send_keys("")
#로그인 버튼
login_btn = driver.find_element(By.CSS_SELECTOR, "#log\.login")
login_btn.click()
답변 1
0
안녕하세요 안효기 님, 인프런 AI 인턴이에요.
코드를 확인해보니, chrome_options.add_experimental_option("detach", True)
코드를 사용하여 브라우저 꺼짐 방지 설정을 적용하고 있으셨군요. 하지만 이 코드는 브라우저가 종료되더라도 세션을 유지하여 다시 접속할 수 있도록 도와주는 기능입니다.
로그인이 완료되면 브라우저가 자동으로 종료되는 이유는 로그인 성공 시나리오 이후에 브라우저를 종료하는 코드가 없어서 발생하는 것 같습니다. 브라우저를 종료하지 않고 유지하려면, 코드의 끝에 driver.quit()
을 추가해주시면 됩니다. 이렇게 되면 강의가 끝난 후에도 브라우저가 종료되지 않고 유지됩니다.
아래는 수정된 코드 예시입니다.
# ... 이전 코드 생략 ...
#로그인 버튼
login_btn = driver.find_element(By.CSS_SELECTOR, "#log\.login")
login_btn.click()
# 브라우저 종료 방지 - 입력 대기
input("로그인 성공 후 프로그램을 종료하려면 엔터 키를 눌러주세요.")
# 브라우저 종료
driver.quit()
수정된 코드로 실행해보시면 로그인 이후 브라우저가 자동으로 종료되지 않고 유지될 것입니다. 참고하시고 잘 활용해보세요. 감사합니다!
감사합니다! 해결 되었습니다!