代码之家  ›  专栏  ›  技术社区  ›  Rohr Facu

在量角器中获取所选选项文本

  •  1
  • Rohr Facu  · 技术社区  · 7 年前

    我试图获取select的选定文本,并在expect中比较值。我有以下代码:

    expect<any>(select_seller.getText()).toEqual('SELLER 1')
    

    但我得到的结果是整个卖家名单的文本,如下所示:

    Expected ' SELLER 2
    SELLER 1
    SELLER 3
    SELLER 4
     ' to equal 'SELLER 1'.
    

    我试过的:

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

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

    编辑:

    select的html代码为:

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

    有人对此有想法吗?谢谢!!

    1 回复  |  直到 7 年前
        1
  •  5
  •   yong    7 年前

    这可能是不正确的,因为我还没有测试过,但你可以这样做

    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(...)
    

    或者更简单的方法:

    function getSelectedText(select) {
        return select.element(by.css('option:checked')).getText();
    }
    
    getSelectedText(element(<locator of select>)).then(...)