извини, чувак, но смысл вопроса был немного другим (я плохо спросил) ... Я перефразировал вопрос и добавил некоторые обновления. с .: обычно я понимаю, что утверждает, что необходимо для испытаний, я упоминал в вопросе, что «это не сам тест, а просто действие».
я есть кнопка отправки, которая только одна на странице, и это в форме.
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>
Итак, я беру xpath:
//button[@type='submit']
Я успешно нажимаю его с помощью submit () (позвольте мне пропустить инициализацию WebDriver, это нормально):
WebElement searchButton = driver.findElement(By.xpath("//button[@type='submit']"));
searchButton.submit();
(и какой-то поиск выполняет)
Но когда я пытаюсь нажать его с помощью click ()
WebElement searchButton = driver.findElement(By.xpath("//button[@type='submit']"));
searchButton.click();
он не нажимается в браузере, который запущен, и в то же время тест Junit горит зеленым (не тест, а просто нажатие кнопки):
@Test
public void test() {
WebElement button = driver.findElement(By.xpath("//button[@type='submit']"));
button.click();
}
Может кто-нибудь объяснить, почему submit () успешно нажимает кнопку в таком случае, но click () - нет. И я не понимаю, почему «тест» зеленый, когда мы пытаемся нажать (), но он не был выполнен, если смотреть на браузер, запущенный драйвером.
ОБНОВЛЕНО: Я пытался
WebElement button = driver.findElement(By.xpath("//button[@type='submit']"));
if (button.isEnabled()) {
button.click();
}
а также
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.elementToBeClickable(button)).click();
но все так же - submit () работает нормально, click () - нет.