Selenium: submit () funciona bien, pero click () no
Tengo el botón Enviar, que es solo uno en la página, y está en forma.
parte html:
<form class="search-form ng-touched ng-dirty ng-valid" novalidate="" style="" xpath="1">
<div class="row">...</div>
<div class="row">...</div>
<div class="row">...</div>
<div class="form__actions" xpath="1">
<div class="form__buttons">
<!---->
<div class="btn__wrapper">
<button class="btn btn__primary" type="submit">
Select My Car
</button>
</div>
</div>
</div>
</form>
Entonces, estoy tomando xpath:
//button[@type='submit']
Lo presiono con éxito a través de submit () (déjame omitir el inicio de WebDriver, está bien):
WebElement searchButton = driver.findElement(By.xpath("//button[@type='submit']"));
searchButton.submit();
(y se realiza alguna búsqueda)
Pero cuando trato de presionarlo haciendo clic ()
WebElement searchButton = driver.findElement(By.xpath("//button[@type='submit']"));
searchButton.click();
no se presiona en el navegador que se inicia, y al mismo tiempo, la prueba Junit es verde (no prueba, solo presiona el botón):
@Test
public void test() {
WebElement button = driver.findElement(By.xpath("//button[@type='submit']"));
button.click();
}
Puede alguien explicar, por qué submit () presiona exitosamente el botón en tal caso, pero haga clic en () - no. Y no entiendo, por qué "prueba" es verde, cuando estamos tratando de hacer clic (), pero no se realizó, si se busca en el navegador iniciado por el controlador.
ACTUALIZADO: Lo intenté
WebElement button = driver.findElement(By.xpath("//button[@type='submit']"));
if (button.isEnabled()) {
button.click();
}
y
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.elementToBeClickable(button)).click();
pero sigue siendo el mismo: submit () funciona bien, click (), no.