Selenium Python의 send_keys() 함수

Rana Hasnain Khan 2023년6월21일
  1. Selenium Python의 send_keys() 함수
  2. Selenium Python에서 send_keys() 함수를 사용한 입력 유효성 검사
  3. Selenium Python에서 send_keys() 함수를 사용하여 텍스트 지우기
Selenium Python의 send_keys() 함수

Selenium Python의 send_keys() 함수를 소개하고 그 사용법을 시연합니다.

모든 애플리케이션은 시장에 진입하기 전에 몇 가지 테스트를 거쳐야 합니다. 응용 프로그램은 먼저 해당 이름과 관련된 모든 요구 사항을 충족해야 합니다.

아무도 응용 프로그램에 제공되는 정확한 입력을 예측하지 못하므로 응용 프로그램을 포괄적으로 테스트해야 합니다. Python Selenium은 가능한 모든 원인을 테스트하는 데 도움이 될 수 있습니다.

‘send_keys()‘는 숫자, 텍스트, 기호 등의 키보드 입력을 애플리케이션의 텍스트 상자로 보내는 과정입니다. send_keys()는 WebDriver의 일부이며 각 키보드 입력은 이 요소로 전송됩니다.

Selenium Python의 send_keys() 함수

이 방법과 관련된 첫 번째 단계는 테스트하려는 웹 애플리케이션을 여는 것입니다. URL을 사용하여 애플리케이션을 열 수 있습니다.

애플리케이션이 동적 유형인 경우 테스트에 실패했지만 테스트를 적용하는 동안 웹 페이지가 완전히 로드되지 않았으므로 전체 페이지가 성공적으로 로드될 때까지 기다리십시오.

다음 단계는 키보드 입력으로 전송된 원하는 요소를 선택하고 검색하는 것입니다. 이 요소는 일반적으로 사용자가 그 안에 쓸 수 있는 텍스트 상자입니다.

요소는 검색 탭 또는 일부 양식일 수 있습니다. 요소 ID, 요소 이름 및 XPath와 같은 여러 옵션을 사용하여 요소를 찾을 수 있습니다.

요소를 선택한 후 send_keys 메소드를 사용하여 키보드 입력이 전송됩니다. ID, 클래스 이름 또는 xpath를 사용하여 요소를 찾을 수 있습니다.

각 메서드의 구문은 다음과 같습니다.

# python
getElemById = driver.find_element_by_id("myId")
getElemByName = driver.find_element_by_name("myClass")
getElemByXPath = driver.find_element_by_xpath("//input[@id='myId']")

send_keys()의 주요 응용 프로그램은 수많은 입력에 대해 응용 프로그램을 테스트하는 것입니다. 그러나 이 방법에 일반적으로 사용되는 두 가지 입력에 대해 배우는 것이 중요합니다.

Selenium Python에서 send_keys() 함수를 사용한 입력 유효성 검사

대부분의 애플리케이션에는 사용자의 이메일 주소가 널리 사용되는 로그인 양식이 있습니다. 우리 모두는 각 이메일 주소에 사용자 이름으로 시작하는 표준 템플릿이 있고 @ 기호와 그 뒤에 도메인 이름이 있다는 것을 알고 있습니다.

이제 이메일 주소를 확인하는 프로세스를 추가해야 합니다.

이렇게 하면 사용자가 로그인 양식에 유효하지 않은 이메일 주소를 작성하여 애플리케이션에 로그인할 수 없습니다. 기본 템플릿을 따르지 않는 입력을 전송하여 응용 프로그램을 추가하고 확인하여 유효성 검사를 확인할 수 있습니다.

추가 유효성 검사도 이 프로세스에 포함될 수 있습니다. 애플리케이션에 로그인하기 위한 암호에는 특정 규칙 집합이 있으므로 이 유효성 검사는 규칙을 따르지 않는 입력을 전송하여 확인할 수 있습니다.

애플리케이션에 있는 검색 표시줄도 확인해야 합니다. 검색 표시줄은 원하는 검색 요소로 사용자를 올바르게 안내하기 위해 관련 결과를 표시해야 합니다.

send_keys()는 검색창에서 예상되는 결과를 확인할 수 있는 편리한 도구입니다.

일부 웹 애플리케이션에는 앱을 게시하기 전에 확인해야 하는 특수 기능이 포함되어 있습니다. 특수 기능의 한 가지 예는 Ctrl+D를 사용하여 마이크를 음소거하거나 음소거 해제하는 Google Meet입니다.

예제 코드:

# python
from selenium import webdriver

Chromedriver = webdriver.Chrome()

Chromedriver.get("https://www.google.com/")

getElemById = Chromedriver.find_element_by_name("gLFyf")

getElemById.send_keys("This is filed by Selenium send keys")

출력:

Selenium send_keys() - 예 1

위의 예에서 볼 수 있듯이 셀레늄의 send_keys() 메서드를 사용하여 모든 웹사이트의 모든 입력 필드를 채울 수 있습니다.

Selenium Python에서 send_keys() 함수를 사용하여 텍스트 지우기

동일한 send_keys() 함수를 사용하여 키 값을 편집하고 변경할 수도 있습니다. 입력 값을 변경한 다음 다시 변경하는 예를 살펴보겠습니다.

이 예에서는 키를 보냅니다. 3초 동안 잠자고 나면 키에서 3개의 문자가 삭제됩니다. 그리고 결국 아래와 같이 값을 다시 변경합니다.

예제 코드:

# python
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

link = "https://www.google.com/"

chromeDriver = webdriver.Chrome("C:\chromedriver.exe")

driverOptions = webdriver.ChromeOptions()

windowSize = chromeDriver.get_window_size()

chromeDriver.get(link)

getElemByName = chromeDriver.find_element_by_name("gLFyf")

getElemByName.send_keys("For test purpose")
time.sleep(3)

getElemByName.send_keys(3 * Keys.BACKSPACE)

time.sleep(3)

getElemByName.send_keys("testing second key")

time.sleep(3)

getElemByName.clear()

time.sleep(3)

chromeDriver.quit()

첫 번째 단계:

Selenium send_keys() - 예제 2 첫 번째 단계

두번째 단계:

Selenium send_keys() - 예 2 두 번째 단계

세 번째 단계:

Selenium send_keys() - 예 2 세 번째 단계

문제 해결:

  1. 선택한 요소가 키보드 입력에서 온 것인지 확인해야 합니다.
  2. 요소의 식별은 합병증을 피하기 위해 적절한 참조와 함께 제공되어야 합니다.
  3. 항상 적절한 방법을 따르십시오. 요소를 검색하고 요소를 클릭한 다음 키를 보냅니다.
  4. send_keys()는 요소가 활성화되지 않았거나 도달 범위를 벗어난 경우 실패할 수 있습니다. 특정 요소에 대해 작업하는 동안 이러한 요소를 계산해야 합니다.
Rana Hasnain Khan avatar Rana Hasnain Khan avatar

Rana is a computer science graduate passionate about helping people to build and diagnose scalable web application problems and problems developers face across the full-stack.

LinkedIn

관련 문장 - Python Selenium