如何从选择框获取值?

How to get the value from selectbox?

我正在尝试验证是否使用量角器从选择框中选择了正确的选项。

这是我从选择框中选择值的方式:

element(by.id('form-mileage-unit')).click().then(function() {
    element(by.cssContainingText('option', browser.params.lengthUnit)).click();         
});;

所以在此基础上我写了下面的代码:

it('Verify paint color', function() {       
    element(by.id('form-mileage-unit')).click().then(function() {
        element(by.cssContainingText('option', browser.params.lengthUnit).getAttribute("value")).toEqual(browser.params.lengthUnit);            
    });;
});     

不幸的是我收到错误:

TypeError: Object by.cssContainingText("option", "Motohodin") has no method 'getText'

有人可以给我建议吗?

您在错误的地方关闭了括号并且没有 expect()。替换:

element(by.cssContainingText('option', browser.params.lengthUnit).getAttribute("value")).toEqual(browser.params.lengthUnit);

与:

var option = element(by.cssContainingText('option', browser.params.lengthUnit));
expect(option.getAttribute("value")).toEqual(browser.params.lengthUnit);

如果您经常处理 select->option 构造,请考虑对其使用抽象,这将使您的测试更清晰、更具可读性,请参阅: