Selênio: submit () funciona bem, mas clique () não
Eu tenho o botão enviar, que é apenas um na página e está no formulário.
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>
Então, eu estou usando o xpath:
//button[@type='submit']
Estou pressionando com sucesso via submit () (deixe-me pular o WebDriver init, tudo bem):
WebElement searchButton = driver.findElement(By.xpath("//button[@type='submit']"));
searchButton.submit();
(e algumas pesquisas são executadas)
Mas quando estou tentando pressioná-lo via click ()
WebElement searchButton = driver.findElement(By.xpath("//button[@type='submit']"));
searchButton.click();
não é pressionado no navegador que é iniciado e, ao mesmo tempo, o teste Junit fica verde (não teste, mas apenas pressionando o botão):
@Test
public void test() {
WebElement button = driver.findElement(By.xpath("//button[@type='submit']"));
button.click();
}
Alguém pode por favor explicar, por que enviar () pressiona com êxito o botão nesse caso, mas clique em () - não. E eu não entendo, por que "teste" é verde, quando estamos tentando clicar (), mas não foi executado, se olhando no navegador iniciado pelo driver.
ATUALIZADA: eu tentei
WebElement button = driver.findElement(By.xpath("//button[@type='submit']"));
if (button.isEnabled()) {
button.click();
}
e
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.elementToBeClickable(button)).click();
mas ainda assim - submit () funciona bem, clique () - não funciona.