LetzerWille
LetzerWille

Reputation: 5658

clear() does not clear the textbox with selenium and python and firefox

clear() does not work in this case. I am getting append after append.
searchForMovie.clear() is not working... I have also tried to send
CTRL + 'a', and then the DELETE. Again all I got are just appends...

 for movie in allMissing:

            time.sleep (10)

            searchForMovie = WebDriverWait (driver, 10).until \
                (EC.presence_of_element_located ((By.CSS_SELECTOR, "#search-text")))  

            searchForMovie.send_keys (movie)

            # click
            enter = WebDriverWait (driver, 10).until \
                (EC.presence_of_element_located ((By.CSS_SELECTOR, "#search-submit")))  

            driver.execute_script ("arguments[0].click()", enter)


            # clear the search text box
            searchForMovie = WebDriverWait (driver, 10).until \
                (EC.presence_of_element_located ((By.CSS_SELECTOR, "#search-text")))

            searchForMovie.clear()

Upvotes: 6

Views: 18032

Answers (3)

Jortega
Jortega

Reputation: 3790

In case .clear() does not work you can try:

from selenium.webdriver.common.keys import Keys

#...your code (I was using python 3)

driver.find_element_by_id('foo').send_keys(Keys.CONTROL + "a");
driver.find_element_by_id('foo').send_keys(Keys.DELETE);

Upvotes: 4

Esmay Kapol
Esmay Kapol

Reputation: 241

I think it should be as easy as:

driver.execute_script("$('#search-text').val('');")

If you want to do it without jQuery, you could use plain javascript:

document.getElementById('search-text').value = '';

Upvotes: 3

undetected Selenium
undetected Selenium

Reputation: 193108

To clear the textbox you need to induce WebDriverWait with expected_conditions set to element_to_be_clickable, next invoke click() on the WebElement and then invoke clear() as follows :

# clear the search text box
searchForMovie = WebDriverWait (driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "#search-text")))
searchForMovie.click()
searchForMovie.clear()

Upvotes: 6

Related Questions