2026년 상식닷컴 선정 식당 & 카페 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요

셀레니움에서 특정 요소의 텍스트를 추가하는 방법은?

_____
셀레니움에서 특정 요소의 텍스트를 추가하는 방법 FAQ

Q1: 셀레니움으로 특정 요소에 텍스트를 직접 추가할 수 있나요?
A1: 셀레니움은 주로 요소에 텍스트를 입력(대체)하거나 읽는 데 사용됩니다. 기존 텍스트 뒤에 추가하는 기능은 기본적으로 제공하지 않으므로, 기존 텍스트를 먼저 가져와서 새로운 텍스트와 결합한 후 입력해야 합니다.

---

Q2: 기존 텍스트 뒤에 새 텍스트를 추가하는 가장 일반적인 방법은?
A2: 1) 해당 요소에서 현재 텍스트를 읽는다.
2) 읽은 텍스트와 추가할 텍스트를 결합한다.
3) 요소를 비우거나 커서를 끝으로 이동한 후 결합한 텍스트를 재입력한다.

```python
element = driver.find_element(By.ID, "my_element")
existing_text = element.text
new_text = existing_text + " 추가할 텍스트"
element.clear() 또는 send_keys 방식에 따라 생략 가능
element.send_keys(new_text)
```

---

Q3: input이나 textarea 같이 입력 가능한 요소에 텍스트를 추가하려면?
A3: send_keys() 함수에 추가할 텍스트를 인자로 전달하면 기존 텍스트 뒤에 자동으로 입력됩니다. 예:

```python
element = driver.find_element(By.ID, "my_input")
element.send_keys(" 추가할 텍스트")
```

---

Q4: contenteditable 요소의 텍스트를 추가할 때는 어떻게 하나요?
A4: contenteditable 요소는 일반 텍스트 입력 필드와 다르므로 send_keys() 사용도 가능하지만, 때때로 자바스크립트를 이용해 직접 프로퍼티를 조작하는 방법이 효과적입니다.

```python
element = driver.find_element(By.ID, "editable")
driver.execute_script("arguments[0].innerText += ' 추가할 텍스트';", element)
```

---

Q5: 요소의 텍스트를 자바스크립트로 직접 수정하려면?
A5: `innerText` 또는 `textContent` 프로퍼티를 사용합니다.

```python
element = driver.find_element(By.ID, "my_element")
driver.execute_script("arguments[0].innerText += ' 추가할 텍스트';", element)
```

---

Q6: 텍스트 추가 후 화면에 반영되지 않는 문제는 어떻게 해결하나요?
A6: 페이지가 자바스크립트 프레임워크로 관리될 경우, 단순 innerText 변경으로 상태가 갱신되지 않을 수 있습니다. 이때는 이벤트(예: `input`, `change`)를 직접 발생시키거나, 해당 폼 컨트롤의 입력 값을 변경하는 방식을 사용하세요.

```python
driver.execute_script("""
arguments[0].innerText += ' 추가할 텍스트';
arguments[0].dispatchEvent(new Event('input', { bubbles: true }));
""", element)
```

---

Q7: 실제 텍스트 입력이 아닌 단순 DOM 텍스트 변경과 입력 필드 내용 변경 차이는 무엇인가요?
A7: `div`, `span` 등 단순 태그의 경우 텍스트는 `innerText` 또는 `textContent`로 변경하지만, ``, `