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

Selenium webdriver 在量角器中获取所选选项文本,selenium-webdriver,jasmine,protractor,Selenium Webdriver,Jasmine,Protractor,我试图获取select的选定文本,并在expect中比较该值。我有以下代码: expect<any>(select_seller.getText()).toEqual('SELLER 1') 我所尝试的: 选择\u seller.getAttribute'text',结果未定义 选择_seller.getAttribute'value',结果是:预期'1:Object'等于'seller 1' 编辑: select的html代码为: <select id="field_sel

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

expect<any>(select_seller.getText()).toEqual('SELLER 1')
我所尝试的:

选择\u seller.getAttribute'text',结果未定义

选择_seller.getAttribute'value',结果是:预期'1:Object'等于'seller 1'

编辑:

select的html代码为:

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

有人对此有想法吗?非常感谢

这可能不正确,因为我还没有测试过,但您可以执行以下操作

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

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

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

你能添加相关的HTML吗also@demouser123补充。非常感谢您的建议您使用什么选择器来选择卖家?@demouser123 css选择器:selectfield\u卖家,这应该不是问题,因为元素被正确地找到了,但没有找到所选的文本值。您可以添加相关的HTML吗also@demouser123补充。非常感谢您的建议您使用什么选择器来选择卖家?@demouser123 css selector:selectfield\u seller,这应该不是问题,因为元素被正确地找到了,而不是所选的文本值。我不得不稍微修改一下它!但是这个办法行得通,谢谢!很高兴它有帮助。我不得不稍微修改一下它!但是这个办法行得通,谢谢!很高兴这有帮助。