2016-07-04 7 views
1

Ich habe 3 Tage, Feld in einer Reihe, und ich versuche, darauf schließen zufällig datieren, aber Winkelmesser zu schnell ist und setzte so etwas wie:Wie setze ich 3 Datum in meinem Winkelmessertest?

  • erste Daten: 01/08/1990 (richtig)
  • zweite Daten: 01/09/0009 (ungültig)
  • letzte Daten: 01/10/0007 (ungültig)

So verwenden ich browser.sleep (200) und es ist funktioniert, aber gibt es einen anderen Weg zu tun? Ist das der richtige Weg?

var dataPublicacao = element(by.xpath("//label[. = 'Data de Publicação*']/following-sibling::input")); 
     dataPublicacao.sendKeys(RetornaDataAleatoria()); 
     browser.sleep(200); 
     var dataInicio = element(by.xpath("//label[. = 'Inicio Vigência*']/following-sibling::input")); 
     dataInicio.sendKeys(RetornaDataAleatoria()); 
     browser.sleep(200); 
     var fimVigencia = element(by.xpath("//label[. = 'Fim Vigência']/following-sibling::input")); 
     fimVigencia.sendKeys(RetornaDataAleatoria()); 
+0

Sind Sie sicher, dass die 'RetornaDataAleatoria' Funktion produziert gültige Daten? – alecxe

+0

Yeap. Funktion RetornaDataAleatoria() { \t \t Rückgabe (Math.floor (Math.random() * 31) +1) + '/' + (Math.floor (Math.random() * 12) +1) + '/'+ (Math.floor (Math.random() * (2016-1990) + 1990)); \t} – paulotarcio

Antwort

0

Ich würde versuchen, die Datumsstring in Komponenten aufzuteilen und Schlüssel in "Chargen" zu senden. Dies ist die Implementierung in einer recht breiten Form:

var action = browser.actions().mouseMove(dataInicio).click(); 
var randomDate = RetornaDataAleatoria(); 

var day = randomDate.slice(0, 2), 
    month = randomDate.slice(3, 5), 
    year = randomDate.slice(6, 10); 

action.sendKeys(day).sendKeys("/").sendKeys(month).sendKeys("/").sendKeys(year).perform(); 

Wenn dies bewiesen würde, zu arbeiten, sollten Sie vielleicht die RetornaDataAleatoria Funktion ändern und eine Reihe von Teilen eines Datums mit Trennzeichen zurückgeben, so dass Sie das Senden vereinfachen Schlüssel Schritt, ohne dass die Zeichenfolge in Stücke schneiden:

var randomDateParts = RetornaDataAleatoria(); 
for (var i = 0; i < randomDateParts; i++) { 
    action = action.sendKeys(randomDateParts[i]); 
} 
action.perform(); 

Sie können auch hinzufügen, eine benutzerdefinierten sleep() Aktion zwischen jedem sendKeys() absichtlich es zu verlangsamen, eine kleine Verzögerung zwischen der nächsten Charge des Schlüssels sind, siehe:

Und, können Sie nur langsam Protractor nach unten vollständig (wahrscheinlich eine gute Idee für das Debuggen nur):

Verwandte Themen