如何选择角度材料2和量角器的选项?

Ral*_*der 1 material protractor angular

我正在用量角器编写一些e2e测试。我的应用程序是Angular Material 2应用程序。在我的测试中,我想选择一个按值进行md-select的选项。当我检查打开的md-select时,我看到了md-option项。选项的值在属性ng-reflect-value中。

假设我有一个值为“ optionA”的选项。如何通过该值选择某个选项?

我尝试了这个:

element(by.name('myselect')).click();
$$('.mat-option').then((options) => {
  ...
});
Run Code Online (Sandbox Code Playgroud)

在内部,我会看到正确数量的选项,但是如何选择值为“ opetionA”的选项呢?

小智 6

这个例子有点粗糙,但是它展示了如何做你想做的事情:

的HTML:

<mat-form-field id="your-id">
    <mat-select>
        <mat-option [value]="1">1</mat-option>
        <mat-option [value]="2">2</mat-option>
    </mat-select>
</mat-form-field>
Run Code Online (Sandbox Code Playgroud)

ts:

function selectOptionByOptionValue(selectFormFieldElementId, valueToFind) {

  const formField = element(by.id(selectFormFieldElementId));
  formField.click().then(() => {

    formField.element(by.tagName('mat-select'))
      .getAttribute('aria-owns').then((optionIdsString: string) => {
        const optionIds = optionIdsString.split(' ');    

        for (let optionId of optionIds) {
          const option = element(by.id(optionId));
          option.getText().then((text) => {
            if (text === valueToFind) {
              option.click();
            }
          });
        }
      });
  });
}

selectOptionByOptionValue('your-id', '1');
Run Code Online (Sandbox Code Playgroud)