본문 바로가기

자동화/Selenium

Selenium 텍스트 입력창 지우는 방법들 (Clear, Keys..)

728x90

Selenium 자동화 코드 작성 중 자주 사용하는 코드가 있는데 바로 텍스트 입력된 내용 삭제하는 코드입니다.

텍스트를 입력한 다음 삭제하거나 기존에 입력된 텍스트를 다른 텍스트로 바꾸기 위해 삭제하기도 하는데요.

 

이 때 사용할 수 있는 코드들을 정리하였습니다.

 

1. send_keys(Keys.CONTROL, 'a', Keys.BACKSPACE)

 

키보드 키 중 Ctrl + A 으로 전체 선택 후 BackSpace 키보드 키로 지우는 방법입니다.

컴퓨터 사용시 가장 자주 사용하는 단축키를 참고하여 사용하기 때문에 어렵지 않게 이해할 수 있습니다.

Mac 사용자의 경우에는 CONTROL 대신 COMMAND를 사용하시면 됩니다.

테스트를 반복 수행시 간헐적으로 동작하지 않는 단점이 있습니다.

 

Windows

driver.find_element(...).send_keys(Keys.CONTROL, 'a', Keys.BACKSPACE)

 

Mac

driver.find_element(...).send_keys(Keys.COMMAND, 'a', Keys.BACKSPACE)

 

 

2. send_keys(Keys.LEFT_SHIFT, Keys.HOME)

 

1번 방법과 유사하지만 키보드 키를 다른걸 사용하여 지우는 방법입니다.

Shift 키와 HOME 키를 사용하면 입력된 텍스트 전체 선택이 가능하기 때문에 1번과 동일한 결과를 얻을 수 있습니다.

만약 바로 새로운 텍스트를 입력하는 경우에는 BACKSPACE 키보드 키는 추가하지 않아도 됩니다.

(전체 선택 후 텍스트 입력 시도시 선택한 텍스트가 사라지기 때문)

 

driver.find_element(...).send_keys(Keys.LEFT_SHIFT, Keys.HOME, Keys.BACKSPACE)

 

 

3. clear

 

가끔씩 키보드 키 동작이 안되는 경우도 있는데요. 원인은 확실하지 않지만 하루 종일 테스트 코드 실행하다보면 1~2번 정도 fail이 발생하는걸로 확인하였습니다.

그럴 때 사용하는 코드가 clear 코드입니다.

실제로 가장 간단하게 사용할 수 있으며 fail이 상대적으로 덜 발생합니다.

(clear가 fail이 더 발생하시는 분들도 있는데 저는 안그렇더라구요.. ㅎㅎ)

 

driver.find_element(...).clear()

 

 

텍스트를 지우는 여러 방법을 소개하였는데 작성하신 코드별 fail이 가장 발생하지 않는 코드로 사용하여 완성도 높은 테스트 자동화 코드를 작성하시길 바랍니다.

 

 

728x90