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

时间:2018-06-01 17:37:46

标签: selenium-webdriver jasmine protractor

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

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 个答案:

答案 0 :(得分:3)

这可能不正确,因为我还没有对此进行过测试,但您可以执行类似

的操作
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(...)