Python/Crawling

셀레니움에서 텍스트 입력 시 줄 바꿈이 안될 때 해결 방법

jimmy_AI 2023. 10. 13. 23:46
반응형

파이썬의 selenium을 활용하여 텍스트 입력란에 자동 입력을 진행하는 경우,
홈페이지의 구조에 따라서 개행 문자인 '\n'이 일반 공백처럼 인식되어

줄 바꿈이 안되는 경우가 발생할 수 있습니다.

이럴 때, 엔터 키를 입력하여 줄 바꿈을 진행하면 해결이 가능한 경우가 있는데요.
이번 글에서 예시 코드를 간략하게 정리하여 살펴보도록 하겠습니다.

 

 

텍스트 입력 줄 바꿈 기본 방법 예제

개행행 문자가 포함된 문자열을 셀레니움을 통하여 텍스트 입력창에 입력하려는 경우,
일반적으로는 다음 코드처럼 진행하게 됩니다.

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()

txt_box = driver.find_element(By.NAME, 'txt_box_name') # 텍스트 입력 박스 탐색
txt_box.send_keys('첫 번째 줄\n두 번째 줄\n세 번째 줄') # 텍스트 입력

 

그러나, 홈페이지 설정에 따라서 일부 경우에서는 위의 코드에서 줄 바꿈이

제대로 인식되지 않고 단순 공백처럼 보일 수 있습니다.

 

반응형

 

해결법: Enter 키 입력을 활용하여 줄 바꿈 시도

위와 같은 경우에는 엔터 키를 입력하면 줄 바꿈이 되는 원리를 이용하여
해당 문제의 해결을 시도해볼 수 있습니다.

위의 예시를 엔터 키 입력 줄 바꿈 방식으로 바꾼 코드 예제는 아래와 같습니다.

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()

txt_box = driver.find_element(By.NAME, 'txt_box_name') # 텍스트 입력 박스 탐색
txt = '첫 번째 줄\n두 번째 줄\n세 번째 줄' # 입력할 텍스트

lines = txt.split('\n') # 각 줄별로 분리

for i, line in enumerate(lines):
    txt_box.send_keys(line)
    if i != len(lines) - 1: # 마지막 줄을 제외하고 엔터 키 입력
    	txt_box.send_keys(Keys.ENTER)