title: How to resolve ElementNotInteractableException thrown by sendKeys method of Selenium WebDriver?
body: <p>As an exercise in learning Selenium WebDriver I am trying to visit the <a href="https://twitter.com/login?lang=en" rel="nofollow noreferrer">Twitter log in page</a> and log in. I am finally able to navigate to the page and get the desired* element for the username field:</p>
  
  <p><code>&lt;input class="text-input email-input js-signin-email" name="session[username_or_email]" type="text"&gt;</code></p>
  
  <p>*I have tried to find what types of elements <code>sendKeys</code> operates with but I can't. I think this element is the one I want since the tag is of the <code>&lt;input&gt;</code> type.</p>
  
  <p>When I call <code>sendKeys</code> on the element after assigning it I get an <code>ElementNotInteractableException</code>. I have tried using explicit waits with the <code>ExpectedConditions</code> of <code>visibilityOf</code> and <code>invisibilityOf</code>. The respective interpretation of the <code>TimeoutException</code> and <code>ElementNotInteractableException</code> tells me that the element I mentioned above loads in the DOM tree but never becomes visible*. How do I get around this? Is there a solution using a <code>JavascriptExecutor</code>?</p>
  
  <p>*The surrounding html might reveal why the element remains invisible:</p>
  
  <pre><code>&lt;form class="t1-form clearfix signin js-signin"
  action="https://twitter.com/sessions" method="post"&gt;
    ::before
    &lt;fieldset&gt;
      &lt;legend class="visuallyhidden"&gt;Log in&lt;/legend&gt;
      &lt;div class="clearfix field"&gt;
        ::before
        &lt;input class="text-input email-input js-signin-email"
        name="session[username_or_email]" type="text"&gt;
  </code></pre>
  
  <p>.</p>
  
  <p>**For those on the hunt, <a href="https://stackoverflow.com/questions/43868009/how-to-resolve-elementnotinteractableexception-in-selenium-webdriver">this</a> question is helpful to look at especially if the issue is caused by the <code>click</code> method instead.</p>