Я пишу тесты автоматизации, которые отправляют ключи в каждое текстовое поле формы (около 5 полей), а затем кнопка отправки становится активной и щелкается. Я обнаружил, что тест часто дает сбой, поскольку заполняется только последнее поле и кнопка никогда не активируется.
Похоже, что метод отправки ключей может выполняться слишком быстро для заполнения страницы. До сих пор я пытался щелкнуть каждое поле перед отправкой ключей (а также в ожидании существования элементов), и это, похоже, не помогает.
Я также пытался проверить, полностью ли загружена страница, подождав, пока каждый элемент и кнопка не появятся на странице, прежде чем продолжить.
Браузер, с которым я тестирую, - chrome. (Версия 79.0.3945.130) Веб-драйвер selenium - 3.11.2 Драйвер chrome обновлен до chrome
private IWebElement FirstNameInput => Webdriver.FindElement(By.Id("first-name-input"));
// The remaining input fields
public void VerifyPageIsFullyLoaded()
{
// Wait until all elements exist
}
public void EnterFormDetails(FormDetail formDetail)
{
WebDriver.WaitUntilElementExists(FirstNameInput);
FirstNameInput.Click();
FirstNameInput.SendKeys(formDetail.FirstName);
WebDriver.WaitUntilElementExists(LastNameInput);
LastNameInput.Click();
LastNameInput.SendKeys(formDetail.LastName);
WebDriver.WaitUntilElementExists(DateOfBirthInput);
DateOfBirthInput.Click();
DateOfBirthInput.SendKeys(formDetail.DateOfBirth);
WebDriver.WaitUntilElementIsClickable(SubmitButton);
SubmitButton.Click();
}
Обновление: Только что попробовал последний стабильный выпуск веб-драйвера selenium ( 3.141.0) и обнаружил, что это все еще не так надежно.