angularjsprotractorselectedvalue

How to get selected option value in protractor


How can I get currently selected option value of selectbox?

I have tried below code but it's not working.

element(by.css('#selectbox')).all(by.tagName('option')).then(function (options) {
    options.forEach(option => {
        if (option.getAttribute('selected')) {
            console.log('selected option', option);
        }
    });
});

Any help would be appreciated.


Solution

  • Is "selected" and attribute or a class-value?

    It would work as "get element, which is selected, then read out its value"

    In code:

    //if selected is an attribute
    element(by.css('#selectbox option[selected]')).getAttribute('value').then(function(value){
        console.log('selected option is '+value);
    })
    
    //if selected is a class-attribute
    element(by.css('#selectbox option.selected')).getAttribute('value').then(function(value){
        console.log('selected option is '+value);
    })
    
    //note, that "element(by.css())" === "$()", so this is the same as the first one
    $('#selectbox option[selected]').getAttribute('value').then(function(value){
        console.log('selected option is '+value);
    })
    

    Read more here about locators and even more important here about CSS-Selectors