Search code examples
pythonpython-2.7selenium-webdriverform-submithtml-input

How to locate and insert a value in a text box (input) using Python Selenium?


I have the following HTML structure and I am trying to use Selenium to enter a value of 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>

Here is the code I have written:

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)

How to get this element and enter a value‎‎‎‎‎‎‎? ‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎


Solution

  • Assuming your page is available under "http://example.com"

    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    
    driver = webdriver.Firefox()
    driver.get("http://example.com")
    

    Select element by id:

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

    Now you can simulate hitting ENTER:

    inputElement.send_keys(Keys.ENTER)
    

    or if it is a form you can submit:

    inputElement.submit()