Send keys not working selenium webdriver python

As you mentioned send_keys("TEST") are not working, there are a couple of alternatives to send a character sequence to respective fields as mentioned below :

  1. Use Keys.NUMPAD3 [simulating send_keys("3")]:

    login.send_keys(Keys.NUMPAD3)
    
  2. Use JavascriptExecutor with getElementById :

    self.driver.execute_script("document.getElementById('login_email').value="12345"")
    
  3. Use JavascriptExecutor with getElementsById :

    self.driver.execute_script("document.getElementsById('login_password')[0].value="password"")
    

Now comming to your specific issue, as you mentioned I tried to use clear() or click() before sendkeys but nothing works correctly, so we will take help of javascript to click() on the text area to clear the predefined text and then use send_keys to populate the text field as follows:

self.driver.execute_script("document.getElementById('manage_description').click()")
self.driver.find_element_by_id('manage_description').send_keys("TEST")

Update :

As you mentioned sometimes it works sometimes not, so I would suggest the following:

  1. Induce ExplicitWait for textarea to be clickable.
  2. Use javascript to send the text within the textarea too.
  3. Your code will look like:

    my_string = "TEST";
    elem = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, "manage_description")))
    self.driver.execute_script("document.getElementById('manage_description').click()")
    self.driver.execute_script("arguments[0].setAttribute('value', '" + my_string +"')", elem);
    

Leave a Comment