Python Selenium을 사용하여 텍스트 상자 (입력)에서 값을 찾아 삽입하는 방법은 무엇입니까?


84

다음 HTML 구조를 가지고 있으며 Selenium을 사용하여 값을 입력하려고합니다 NUM.

<div class="MY_HEADING_A">
    <div class="TitleA">My title</div>
    <div class="Foobar"></div>
        <div class="PageFrame" area="W">                
             <span class="PageText">PAGE <input id="a1" type="txt" NUM="" />  of <span id="MAX"></span> </span>
</div>

내가 작성한 코드는 다음과 같습니다.

head = driver.find_element_by_class_name("MY_HEADING_A")
frame_elem = head.find_element_by_class_name("PageText")

# Following is a pseudo code. 
# Basically I need to enter a value of 1, 2, 3 etc in the textbox field (NUM) 
# and then hit RETURN key.
## txt  = frame_elem.find_element_by_name("NUM")
## txt.send_keys(Key.4"

이 요소를 가져오고 값을 입력하는 방법은 무엇입니까?

답변:


147

" http://example.com " 에서 페이지를 사용할 수 있다고 가정합니다.

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

driver = webdriver.Firefox()
driver.get("http://example.com")

ID로 요소 선택 :

inputElement = driver.find_element_by_id("a1")
inputElement.send_keys('1')

이제 ENTER를 누르는 것을 시뮬레이션 할 수 있습니다.

inputElement.send_keys(Keys.ENTER)

또는 양식 인 경우 제출할 수 있습니다.

inputElement.submit() 

3
ElementNotInteractableException : 메시지 : 요소
Sheshank S.

키보드로 접근 할 수 없습니다
Sheshank S.

3
상호 작용하기 전에 요소가 나타날 때까지 기다려야합니다. input_element = WebDriverWait (driver, WAIT_TIME) .until (EC.visibility_of_element_located ((By.CSS_SELECTOR, "# a1"))) input_element.send_keys ( "1")
Wildhammer
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.