I'm doing an E2E test on an Angular/C# application with Selenium.
I want to fill in a angular material form with Selenium.
There are 2 form-fields: date1 and date2
Date1 works fine: I clear the field and fill in the new date:
public void Wait(IWebDriver _webDriver, string elementString)
{
WebDriverWait wait = new WebDriverWait(_webDriver, TimeSpan.FromSeconds(5));
IWebElement element = wait.Until(ExpectedConditions.ElementIsVisible(By.Id(elementString) ));
}
public void Test()
{
Wait(_webDriver, "date1");
for (int i = 0; i < 15; i++) {
webDriver.FindElement(By.Id("date1")).SendKeys(Keys.Backspace);
}
webDriver.FindElement(By.Id("date1")).SendKeys(DateTime.Now.AddDays(1).ToString("d"));
}
HTML code:
<mat-form-field class="half-width-field">
<mat-label> date1</mat-label>
<input matInput class="form-control"
formControlName="date1"
id=date1
matInput [matDatepicker]="pickerEnd"
placeholder="MM/DD/YYYY">
<mat-datepicker-toggle matSuffix [for]="pickerEnd"></mat-datepicker-toggle>
<mat-datepicker #pickerEnd></mat-datepicker>
<mat-error *ngIf="updateProductForm.controls.date1.hasError('required')">
date1 is required
</mat-error>
<mat-error *ngIf="updateProductForm.controls.date1.hasError('mismatch')">
date1 must before due
</mat-error>
</mat-form-field>
<mat-form-field class="half-width-field">
<mat-label> date2 </mat-label>
<input matInput class="form-control"
formControlName="date2"
id=date2
matInput [matDatepicker]="pickerStart"
placeholder="MM/DD/YYYY">
<mat-datepicker-toggle matSuffix [for]="pickerStart"></mat-datepicker-toggle>
<mat-datepicker #pickerEnd></mat-datepicker>
<mat-error *ngIf="updateProductForm.controls.date2.hasError('required')">
date2 is required
</mat-error>
<mat-error *ngIf="updateProductForm.controls.date2.hasError('mismatch')">
date2 must before due
</mat-error>
</mat-form-field>
When I try to do this with date2, I get a NotInteractable
exception.
I use wait until visible (and tried also clickable and also a delay of 10 seconds.
webDriver.FindElement(By.Id("date2")).Displayed
gives as result true?
What is going wrong?