AngularJS + Protractor Cómo seleccionar la opción desplegable en función de su texto, no su valor

Quiero hacer clic en el elemento por su texto y no por su valor en el cuadro desplegable.

Encontré esta gran publicación:https://coderwall.com/p/tjx5zg pero no funciona como se esperaba, la búsqueda continúa para siempre después de encontrar una coincidencia y no hace clic en el elemento,

si alguien tiene un mejor ejemplo (que funciona) o puede arreglar este código y hacerlo funcionar,

Apericiaré.

Este es el código Dan Haller de la publicación utilizada (todos los derechos reservados para él)

function selectOption(selector, item){
    var selectList, desiredOption;

    selectList = this.findElement(selector);
    selectList.click();

    selectList.findElements(protractor.By.tagName('option'))
        .then(function findMatchingOption(options){
            options.some(function(option){
                option.getText().then(function doesOptionMatch(text){
                    if (item === text){
                        desiredOption = option;
                        return true;
                    }
                });
            });
        })
        .then(function clickOption(){
            if (desiredOption){
                desiredOption.click();
            }
        });
    }

Esta es una función de elemento seleccionado que puedo usar así:

var browser = protractor.getInstance();
browser.selectOption = selectOption.bind(browser);
browser.selectOption(protractor.By.id('my-dropdown'), 'My Value');

Respuestas a la pregunta(3)

Su respuesta a la pregunta