In some of my Selinium Webdriver tests, I've noticed that I'm unable to submit a form by calling submit() on any of the elements of the form, but I can call click() on the submit button just fine. I've created a simple test web page to illustrate the problem. In the example below, when I call submit(), I see the submit button. But when I call click(), the form is actually submitted and I see 'Submitted'.
<html>
  <body>
    <?php if(isset($_POST["submit"])): ?>
    Submitted
    <?php else: ?>
      <form method="post">
        <input id="submit" name="submit" type="submit" value="submit">
      </form>
    <?php endif; ?>
  </body>
</html>
I'm using this Selenium template, and here is how my test looks:
@Listeners(ScreenshotListener.class)
public class LoginTest extends SeleniumBase {
    @Test
    public void test() {
        WebDriver driver = getDriver();
        driver.get("http://localhost/test.php");
        WebElement submit = driver.findElement(By.id("submit"));
        submit.click(); // works
        // submit.submit(); // doesn't work
    }
}
				
                        
Alright, so, I have a similar issue and I'd like to share a solution that has been serving me well thus far. On some of the web pages I have to use
.Submit()and on some I have to use.Click()on the button element. The page that I have to use.Click()on, will tell me that username or password I entered is incorrect; eventhough, if I leave out the.Submit()portion and click manually, it logs in with the programatically filled in credentials. So, I had to find its button element by its id and use.Click()on it. The second website has a completely opposite behavior and does nothing when.Click()is being used on the button. Instead,.Submit()works.So, to get around this whole mess until I figure it out (and I've bee at it for a while), here's what I've done. Most of the websites perform submission on the
Enterkey down event, so, that's exactly what I did.Here's a snippet of my code:
This little change saved me a whole lot of headache. I've tested it on several other websites and no issues thus far. I know it's not a complete fix of the library issue, but it's A fix.