2013-08-23 13 views
9

C'è un modo per fare clic su un valore nascosto in un sottomenu. Vorrei essere in grado di fare qualcosa di simileUn modo per fare clic sugli elementi nascosti nei test end-to-end del goniometro

driver.findElement(protractor.By.xpath('/html/body/div/div/a')).mouseover.then(function() { 
    ptor.findElement(protractor.By.className('name').getText().then(function(result) { 
     expect(result).toBe('Me'); 
    }); 
}); 

quando la voce di menu non è visibile, o siamo limitati con questo al momento. Se questo non è possibile, c'è un modo per aggirare questo problema al momento.

risposta

10

ok così dopo una lunga e dolorosa ricerca cercando di trovare una risposta a questa domanda ho finalmente trovato la risposta cercando di rispondere a una domanda diversa.

La maggior parte della documentazione che ho trovato spiega che dobbiamo usare Azioni sotto forma di un WebElement e quindi lanciarlo in Javascript e passarlo a un elemento di script sotto forma di array con l'azione clic.

Bene, lo stesso tipo va qui ma con alcune modifiche.

describe('', function() { 
    var ptor = protractor.getInstance(); 
    var driver = ptor.driver; 

    it('', function() { 
     var hiddenElement = driver.findElement(protractor.By.yourchosenlocator('')); 
     driver.executeScript("arguments[0].click()", hiddenElement).then(function() { 
      expect(whatever).toMatch(whatever); 
     }); 
    }, 30000); 
}); 

come si può vedere non c'è alcun uso di webelement e nessuna trasmissione richiesta.

Qui ci sono le fonti che mi hanno aiutato nella mia ricerca di risposte

How do you click on an element which is hidden using Selenium Webdriver?

SELENIUM WEBDRIVER – HOW TO CLICK ON A HIDDEN LINK OR MENU

Selenium WebDriver - hidden select and anchor [duplicate]

+0

Ho provato molte variazioni, ma non riesco a ottenere questo al lavoro. Sto facendo 'driver.executeScript (" arguments [0] .click() ", element (by.css ('.logout')))' e risulta in 'UnknownError: {" errorMessage ":" 'undefined' non è una funzione (valutando 'argomenti [0] .click()') "' – BradGreens

+0

quale versione del goniometro stai usando? la versione più recente potrebbe richiedere l'uso di ptor.executeScript o protractor.executeScript. potresti pubblicare il tuo codice così posso vederlo e potrei essere in grado di aiutarti da lì –

+0

Sono stato in grado di trovarlo su 'browser.executeScript' dai documenti. https://github.com/angular/protractor/blob/master/docs/faq.md#how-can-i-interact-directly-with-the-javascript-running-in-my-app. Mi viene un po 'di confusione quando uso 'ptor',' driver' e 'browser' ... ci sono un sacco di esempi che sembrano mescolarli un po'. – BradGreens

Problemi correlati