Agile Testers TechTalks | Test War Stories - Andreia Gaita @ Tech Lead do GitHub. Saiba mais aqui

Como tornar um elemento visível , com Protractor



  • Olá a todos,
    Estou Automatizando uma aplicação AngularJS 2, e em um dos formulários existe um campo que é um input do tipo text, e nele são listados vários links, o que acontece é o seguinte eu consigo encontrar o link e interagir com ele porem o mesmo não está visível e é apresentado o erro em anexo nas imagens, esse campo foi feito utilizando uma biblioteca, então não é um campo padrão.
    0_1501813940345_como tornar um elemento visivel.jpg
    0_1501813959545_html e js do campo.jpg



  • @jonathalfc, bom dia.
    Pode ser uma pergunta boba, mas você antes está clicando no input de forma a abrir a lista para só então fazer qualquer ação com o link?



  • @Paulo-Gonçalves , bom dia,

    Sim eu estou clicando no input ai então a lista é apresentada, porem quando clico em algum item ele da a mensagem de “element not visible”.



  • @jonathalfc , poderia postar o trecho do código aqui? Acredito que deve ser o tempo para torná-lo visível. Quando isso ocorre, costumo utilizar o browser.sleep para isso ou a promise do elemento. Mas posta o código e vamos ver se realmente segue esse seria o caso. =)



  • @DiogoMiranda , @Paulo-Gonçalves , boa noite gostaria de agradecer pela atenção, Diogo também usei as opções de de sleep, visibilityOf, invisibilityOf etc, mesmo assim o elemento apesar de visível não é clicável, mas consegui resolver o problema da seguinte maneira, vou postar o código quem sabe pode ajudar mais alguém:

    Meu método
    IntegrationsCreatePage.prototype.selectTriggerTheShootEnviarMensagemEmUmCanal = function(){

        // 1 - Ativo a div que contem os links, ação que já estava fazendo antes
    var ativarbotaoselect = element(by.cssContainingText('span','Escolha o gatilho a ser disparado...'));
    	ativarbotaoselect.click();
    
       // 2 - Dou um sendkeys no elemento seguido pelo comando \n que simula o enter do teclado, pois assim o valor é 
           inputado no campo, se der apenas o sendkeys() ou click() não funciona tem que ser com o \n 
    var inserirGatilhoNoCampo = element(by.id('focusser-3')).sendKeys('Enviar mensagem em um canal\n');  
    

    };

    Obrigado, espero que ajude a outros :)