Ответ
Основной метод для клика — WebElement.click(). Однако в реальных тестах простого вызова click() часто недостаточно из-за асинхронного поведения веб-приложений.
Базовый пример (Selenium WebDriver, Java):
WebElement submitButton = driver.findElement(By.id("submit"));
submitButton.click();
Практический подход с явными ожиданиями (Best Practice): Перед кликом необходимо убедиться, что элемент:
- Найден в DOM.
- Видим на экране.
- Кликабелен (не disabled, не перекрыт другим элементом).
import org.openqa.selenium.support.ui.WebDriverWait;
import org.openqa.selenium.support.ui.ExpectedConditions;
// Создаем объект явного ожидания
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
// Ждем, пока элемент станет кликабельным, И затем кликаем
WebElement button = wait.until(
ExpectedConditions.elementToBeClickable(By.cssSelector(".primary-button"))
);
button.click();
Для сложных взаимодействий (например, клик с удержанием, двойной клик, клик с перемещением) используется Actions API:
new Actions(driver)
.moveToElement(element) // Навести курсор
.click() // Кликнуть
.perform();
Ключевой вывод для QA: Надежный клик в автотестах — это комбинация поиска элемента, явного ожидания его готовности и последующего выполнения действия. Использование только click() без ожиданий — частая причина хрупких (flaky) тестов.