在量角器中获取选定的选项文本

Roh*_*acu 1 jasmine selenium-webdriver protractor

我正在尝试获取选择的选定文本,并比较期望中的值。我有以下代码:

expect<any>(select_seller.getText()).toEqual('SELLER 1')
Run Code Online (Sandbox Code Playgroud)

但是我得到的结果是整个卖家列表的文本,如下:

Expected ' SELLER 2
SELLER 1
SELLER 3
SELLER 4
 ' to equal 'SELLER 1'.
Run Code Online (Sandbox Code Playgroud)

我试过的:

  • select_seller.getAttribute('text'),结果是undefined

  • select_seller.getAttribute('value'),结果是: Expected '1: Object' to equal 'SELLER 1'.

编辑:

选择的html代码是:

<select id="field_seller" [(ngModel)]="o.seller">
  <option [ngValue]="sellerOption" *ngFor="let sellerOption of sellers">
      {{sellerOption.name}}
  </option>
</select>
Run Code Online (Sandbox Code Playgroud)

任何人都有这个想法?非常感谢!!

dem*_*123 5

这可能不正确,因为我还没有测试过,但你可以做类似的事情

function getSelectedText(select) {
  return select.getAttribute('value')
    .then(function (i) {
      return select.element(by.css('option[value="' + i + '"]')).getText();
    });
}

getSelectedText(element(by.id('select_id'))).then(...)
Run Code Online (Sandbox Code Playgroud)

或者更简单的方法:

function getSelectedText(select) {
    return select.element(by.css('option:checked')).getText();
}

getSelectedText(element(<locator of select>)).then(...)
Run Code Online (Sandbox Code Playgroud)