Selenium IDE - Comando per attendere 5 secondi


90

Sto usando l'IDE Selenium per Firefox e sto cercando un comando di attesa. Il mio problema è che voglio testare un sito web con una mappa esterna incorporata. Questa mappa esterna richiede 3-5 secondi per caricarsi.

I miei comandi:

open /Page/mysite.html
//Wait Command? (5 seconds)
ClickAndWait link=do something

Risposte:


107

Utilizzare il comando pause e immettere il numero di millisecondi nel campo Target.

Imposta la velocità al massimo (Azioni -> Più veloce), altrimenti non funzionerà.


Grazie! Ho inserito il comando, ma Selenium non si ferma. Comando = pausa, valore = 10000
LaPhi

53
Usa Targetinvece di Value. Comando = Pausa, Target = 1000.
khairul

1
@Khairul sono contento che tu abbia aggiunto quel commento, mi sta facendo impazzire il motivo per cui pause()non funzionerà!
cchana

La velocità non ha alcuna influenza sul comando di pausa, è invece come dice @Khairul: Mettilo nel bersaglio.
Mendhak

quando metti in pausa alla fine di un test case durante l'esecuzione di una suite di test non funzionerà
Alfonso Fernandez-Ocampo

85

Questo ritarderà le cose per 5 secondi:

Comando: pausa
Target: 5000
Valore:

Questo ritarderà le cose per 3 secondi:

Comando: pausa
Target: 3000
Valore:

Documentazione:

http://release.seleniumhq.org/selenium-core/1.0/reference.html#pause

inserisci qui la descrizione dell'immagine inserisci qui la descrizione dell'immagine


2
Quindi, imposta 5000 per 5 secondi
Ripon Al Wasim,

1
È assurdo che avrebbero reso l'obiettivo il valore da attendere in millisecondi. Lo adoro. Grazie per aver postato questo perché non ho nemmeno provato a inserire il valore nel target.
John Z

6

Per coloro che lavorano con ant, lo uso per indicare una pausa di 5 secondi:

<tr>
    <td>pause</td>
    <td>5000</td>
    <td></td>
</tr>

Cioè, target: 5000e valuevuoto. Come indica il riferimento:

pausa (waitTime)

Argomenti:

  • waitTime - la quantità di tempo per dormire (in millisecondi)

Attendi il periodo di tempo specificato (in millisecondi)



1

Questo farà quello che stai cercando in C # (WebDriver / Selenium 2.0)

var browser = new FirefoxDriver();
var overallTimeout = Timespan.FromSeconds(10);
var sleepCycle = TimeSpan.FromMiliseconds(50);
var wait = new WebDriverWait(new SystemClock(), browser, overallTimeout, sleepCycle);
var hasTimedOut = wait.Until(_ => /* here goes code that looks for the map */);

E non usare mai Thread.Sleep perché rende i tuoi test inaffidabili


Opzione decisamente migliore in Selenium 2.
Craastad

0

Il comando pause può essere utilizzato direttamente nell'ide in formato html.

Se usi java o C potresti usare Thread.sleep (5000). Il tempo è in millisecondi. Altre lingue supportano "sleep 5" o time.sleep (5). hai più opzioni per aspettare solo un tempo prestabilito.


2
Thread.Sleep non è mai una buona idea ed è per questo che Selenium fornisce primitive di attesa. Se li usi puoi specificare un valore di timeout molto più alto che rende i test più affidabili senza rallentarli poiché la condizione può essere valutata tutte le volte che è necessario, ad es. ogni 50 ms.
Pawel Pabich

La mia risposta in thread.sleep è relativa solo alla risposta alla domanda su come farlo aspettare nell'ide. Quando la pausa viene tradotta in thread.sleep quando si converte da html a java oc nell'ide.
Rattlerbred

0

Prima del comando clickAndWaitaggiungere il seguente codice in modo che lo script attenderà fino a quando il collegamento specifico sarà visibile:

   <tr>
        <td>waitForVisible</td>
        <td>link=do something</td>
        <td></td>
    </tr>

La pratica di utilizzare i comandi wait invece di pause è il più delle volte più efficiente e più stabile.


0

Questo attenderà fino a quando non verrà visualizzato il tuo collegamento, quindi potrai cliccarci sopra.

Command: waitForElementPresent Target: link=do something Value:


0

Uno che ho trovato funziona per il sito che provo è questo:

waitForCondition | selenium.browserbot.getUserWindow (). $. active == 0 | 20000

Klendathu


0

In Chrome, per "Selenium IDE", stavo anche lottando perché non si fermasse. Si fermerà, se dai come di seguito:

  • Comando: pausa
  • Obiettivo: vuoto
  • Valore: 10000

Questo farà una pausa di 10 secondi.


1
L'obiettivo dovrebbe essere 10000 e il valore dovrebbe essere vuoto
Sirmyself

Non sono sicuro di quale plug-in del browser stai provando, ma ha funzionato bene per me in Chrome. Dipende anche dall'estensione che stai utilizzando.
TechSingh
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.