Selenium IDE - Commande pour attendre 5 secondes

89

J'utilise Selenium IDE pour Firefox et je recherche une commande wait. Mon problème est que je souhaite tester un site Web avec une carte externe intégrée. Cette carte externe a besoin de 3 à 5 secondes pour se charger.

Mes commandes:

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

Réponses:

105

Utilisez la commande pause et entrez le nombre de millisecondes dans le champ Cible.

Réglez la vitesse sur le plus rapide (Actions -> Le plus rapide), sinon cela ne fonctionnera pas.

Adam Prax
la source
Je vous remercie! J'ai inséré la commande, mais Selenium ne s'arrête pas. Commande = pause, Valeur = 10000
LaPhi
53
Utilisez à la Targetplace de Value. Commande = Pause, cible = 1000.
khairul
1
@Khairul heureux que vous ayez ajouté ce commentaire, cela m'a rendu fou de savoir pourquoi pause()ne fonctionnera pas!
cchana
La vitesse n'a aucun rapport avec la commande de pause, c'est comme le dit @Khairul à la place: Mettez-la dans la cible.
Mendhak
lorsque vous faites une pause à la fin d'un cas de test lors de l'exécution d'une suite de tests, cela ne fonctionnera pas
Alfonso Fernandez-Ocampo
84

Cela retardera les choses de 5 secondes:

Commande: pause
Cible: 5000
Valeur:

Cela retardera les choses de 3 secondes:

Commande: pause
Cible: 3000
Valeur:

Documentation:

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

entrez la description de l'image ici entrez la description de l'image ici

MacGyver
la source
2
Alors, réglez 5000 pour 5 secondes
Ripon Al Wasim
1
C'est insensé qu'ils donnent à la cible la valeur à attendre en millisecondes. Aimer. Merci de poster ceci car je n'ai même pas essayé de saisir la valeur dans la cible.
John Z
6

Pour ceux qui travaillent avec ant, j'utilise ceci pour indiquer une pause de 5 secondes:

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

Autrement dit, target: 5000et valuevide. Comme l'indique la référence:

pause (waitTime)

Arguments:

  • waitTime - le temps de sommeil (en millisecondes)

Attendez la durée spécifiée (en millisecondes)

fedorqui 'Alors arrêtez de nuire'
la source
4

Votre meilleur pari est probablement d' waitForConditionécrire une fonction javascript qui renvoie true lorsque la carte est chargée.

hautement caféiné
la source
Merci pour votre commentaire! Mais existe-t-il maintenant un moyen OOTB d'attendre x secondes?
LaPhi
1
Non, il n'y a pas de moyen direct d'attendre seulement x secondes. Consultez la liste complète des commandes prises en charge .
hautement caféiné le
2
pause x000 secondes attendra x secondes
Thunder Rabbit
1

Cela fera ce que vous recherchez en 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 */);

Et n'utilisez jamais Thread.Sleep car cela rend vos tests peu fiables

Pawel Pabich
la source
Une bien meilleure option dans Selenium 2.
craastad
0

La commande pause peut être utilisée directement dans l'ide au format html.

Si vous utilisez java ou C, vous pouvez utiliser Thread.sleep (5000). Le temps est en millisecondes. D'autres langues prennent en charge "sleep 5" ou time.sleep (5). vous avez plusieurs options pour n'attendre qu'une heure définie.

hochet
la source
2
Thread.Sleep n'est jamais une bonne idée et c'est pourquoi Selenium fournit des primitives d'attente. Si vous les utilisez, vous pouvez spécifier une valeur de délai beaucoup plus élevée, ce qui rend les tests plus fiables sans les ralentir car la condition peut être évaluée aussi souvent que nécessaire, par exemple. toutes les 50 ms.
Pawel Pabich
Ma réponse dans le thread.sleep est uniquement liée à la réponse à la question de savoir comment le faire attendre dans l'ide. Comme pause est traduit en thread.sleep lorsque vous convertissez de html en java ou c dans l'ide.
rattlerbred
0

Avant la commande, clickAndWaitajoutez le code suivant pour que le script attende que le lien spécifique soit visible:

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

La pratique consistant à utiliser les commandes wait au lieu de pause est la plupart du temps plus efficace et plus stable.

George
la source
0

Cela attendra que votre lien apparaisse, puis vous pourrez cliquer dessus.

Command: waitForElementPresent Target: link=do something Value:

the_average_average
la source
0

Celui que j'ai trouvé fonctionne pour le site que je teste est celui-ci:

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

Klendathu

Klendathu
la source
0

Dans Chrome, pour "Selenium IDE", j'avais également du mal à ne pas mettre en pause. Il s'arrêtera, si vous donnez comme ci-dessous:

  • Commande: pause
  • Cible: vide
  • Valeur: 10000

Cela mettra en pause pendant 10 secondes.

TechSingh
la source
1
La cible doit être de 10000 et la valeur doit être vide
Sirmyself
Je ne sais pas quel plugin de navigateur vous essayez, mais cela a bien fonctionné pour moi dans Chrome. Dépend également de l'extension que vous utilisez.
TechSingh