0

Selenium を使用して Angular/C# アプリケーションで E2E テストを行っています。

角度のあるマテリアル フォームを Selenium で埋めたい。

date1 と date2 の 2 つのフォーム フィールドがあります。

Date1 は正常に動作します。フィールドをクリアして、新しい日付を入力します。

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 コード:

<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>
  

date2 でこれを実行しようとすると、NotInteractable例外が発生します。

表示されるまで待機します(クリック可能で10秒の遅延も試しました。

webDriver.FindElement(By.Id("date2")).Displayed結果として真を与える?

何がうまくいかないのですか?

4

1 に答える 1