https://news.hada.io/topic?id=15782

웹드라이버없이

from seleniumwire import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from time import sleep
import sys

chrome_options = Options()
chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
driver = webdriver.Chrome(options=chrome_options)

페이지 기다리기

def findNexonSignupWindow():
    for window in driver.window_handles:
        driver.switch_to.window(window)
        currentURL = driver.current_url
        if "signin.nexon.com/simple-signup" in currentURL : return True
    return False

while(True):
        if time.time() - start > timeout : return False
        if findNexonSignupWindow() : break
        sleep(0.3)
    # 회원가입 페이지 나올때까지 대기

Selenium v4, bs4

웹드라이버 자동업데이트

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

options = Options()
options.add_experimental_option('detach', True)  # 브라우저 바로 닫힘 방지
options.add_experimental_option('excludeSwitches', ['enable-logging'])  # 불필요한 메시지 제거

service = Service(ChromeDriverManager().install())

driver = webdriver.Chrome(service=service, options=options)

driver.get('<https://naver.com>')

service = Service(ChromeDriverManager().install()) 이 부분을 ChromeDriverManager(path="원하는 경로") 이렇게 사용하면 원하는 곳에 크롬드라이버를 다운로드하게 됩니다.

웹드라이버 옵션

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

options = Options()

user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.5195.102 Safari/537.36"
user_data = "내가 원하는 경로"

options.add_argument(f"user-agent={user_agent}")
options.add_argument(f"user-data-dir={user_data}")

options.add_experimental_option("detach", True) # 화면이 꺼지지 않고 유지

options.add_argument("--start-maximized") # 최대 크기로 시작
options.add_argument("--start-fullscreen") # 전체 화면(F11)으로 시작
options.add_argument("window-size=500,500") # 화면 크기 지정

options.add_argument("--headless") # 헤드리스 모드
options.add_argument("--disable-gpu")

options.add_argument("--mute-audio") # 음소거
options.add_argument("incognito") # 시크릿 모드

options.add_experimental_option("excludeSwitches", ["enable-logging"]) # 불필요한 메세지 제거
options.add_experimental_option("excludeSwitches", ["enable-automation"]) # 자동화 메세지 제거

service = Service(ChromeDriverManager().install())

driver = webdriver.Chrome(service=service, options=options)

driver.get("<https://naver.com>")

print(driver.page_source[:1000])

driver.quit()

[출처] 파이썬 셀레니움(selenium) 웹 드라이버 주요 옵션 마스터|작성자 김플

요소 선택자