• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    해결됨

브라우저가 꺼집니다..

23.10.30 14:25 작성 조회수 418

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 인턴님의 프로필

인프런 AI 인턴

2023.11.01

안녕하세요 안효기 님, 인프런 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()

수정된 코드로 실행해보시면 로그인 이후 브라우저가 자동으로 종료되지 않고 유지될 것입니다. 참고하시고 잘 활용해보세요. 감사합니다!

안효기님의 프로필

안효기

질문자

2023.11.08

감사합니다! 해결 되었습니다!