[selenium] 요소 선택이 안될 경우

2022. 12. 27. 16:24·Development/Python

셀레니움 사용하기

라이브러리 선언

상단에 필요한 라이브러리를 선언한다.

from selenium import webdriver 
from selenium.webdriver import ActionChains
from selenium.webdriver.common.keys import Keys

option 입력하기

필요한 option이 있다면 입력한다.

header값을 입력해줄 수 있다.

# chrome option
options = webdriver.ChromeOptions()

options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-gpu')
options.add_argument('--disable-dev-shm-usage')
options.add_experimental_option('excludeSwitches', ["enable-logging"])
options.add_argument('user-agent=' + 'Mozilla/5.0 (X11; Ubuntu; Linux i686 on x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2820.59 Safari/537.36')

headless 옵션은 크롬 브라우저 창을 숨겨주는 기능이다.

test할 때는 주석처리해서 실행되는 화면을 보고, 개발이 끝나면 headless옵션을 활성화하였다.

driver 객체 생성하기

driver말고 다른 이름을 사용해도 된다. 

driver = webdriver.Chrome(options=options)
time.sleep(1)
driver.set_window_size(414, 800) #원하는 사이즈로 브라우저 크기 고정, 생략 가능
driver.get('접속할 URL') #URL 접속
time.sleep(2) #2초 대기

요소 선택하기 (css_selector)

driver.find_element_by_css_selector("#loginForm > div > div:nth-child(1) > div > label > input")

요소 선택이 안될 경우

class명 예시

나는 css_selector나 xpath 등으로 안될 때 class_name을 사용하는데 셀레니움에서 class 명을 입력할 때 공백은 마침표(.)으로 치환해서 입력해줘야한다.

공백으로 넣으면 요소를 찾을 수 없는 Message: no such element: Unable to locate element: 오류가 발생한다.

아래와 같이 class명이 Z26q7c UK95Uc jGGQ5e로 되어있으면 공백을 모두 마침표(.)으로 바꿔주면 된다.

  • 기존: Z26q7c UK95Uc jGGQ5e
  • 치환: Z26q7c.UK95Uc.jGGQ5e
텍스트 에디터 등을 활용해서 스페이스바를 마침표로 모두 변환해도 된다.

바꿔주니 정상적으로 선택된다.

'Development > Python' 카테고리의 다른 글

[Selenium] chromedriver headless 옵션에 대하여  (0) 2023.01.26
[Python] 튜플, 리스트, 딕셔너리 차이  (0) 2023.01.25
파이썬 for _ in에서 언더바(_)란?  (0) 2023.01.15
[Python] 윈도우에서 자동 실행하기(feat. 작업 스케줄러)  (0) 2022.12.20
[Python] 백슬래시(역슬래시) 입출력  (0) 2022.12.14
'Development/Python' 카테고리의 다른 글
  • [Python] 튜플, 리스트, 딕셔너리 차이
  • 파이썬 for _ in에서 언더바(_)란?
  • [Python] 윈도우에서 자동 실행하기(feat. 작업 스케줄러)
  • [Python] 백슬래시(역슬래시) 입출력
곽진돔
곽진돔
Developer
  • 곽진돔
    echo "곽박한 세상";
    곽진돔
  • 전체
    오늘
    어제
    • 분류 전체보기 (183)
      • Development (56)
        • Linux (13)
        • k8s (3)
        • Docker (5)
        • AWS (1)
        • PHP (35)
        • Python (21)
        • Java (1)
        • SpringBoot (4)
        • JavaScript (1)
        • React (8)
        • MySql (19)
        • MongoDB (1)
      • Daily (4)
      • Study (6)
        • TIL (1)
        • license (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
    • 설정
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    date
    Selenium
    정규표현식
    UTF8
    Shell
    error
    ssh
    SQL
    IP
    php
    MySQL
    nodejs
    윈도우
    db
    CentOS
    Java
    크롤링
    인코딩
    스프링부트
    docker
    CentOS7
    Python
    Linux
    HTML
    JavaScript
    리눅스
    springboot
    react
    리액트
    chromedriver
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
곽진돔
[selenium] 요소 선택이 안될 경우
상단으로

티스토리툴바