J'utilise le sélénium IDE pour Firefox et la recherche d'une commande d'attente. Mon problème est que je veux tester un site Web avec une carte externe intégrée. Cette carte externe a besoin de 3 à 5 secondes pour être chargée.
Mes commandes:
open /Page/mysite.html
//Wait Command? (5 seconds)
ClickAndWait link=do something
Utilisez la commande pause . Définissez la vitesse la plus rapide (Actions -> La plus rapide), sinon cela ne fonctionnera pas.
Ceci retardera les choses de 5 secondes:
Commande: pause
Cible: 5000
Valeur:
Ceci retardera les choses de 3 secondes:
Commande: pause
Cible: 3000
Valeur:
Documentation:
http://release.seleniumhq.org/Selenium-core/1.0/reference.html#pause
Pour ceux qui travaillent avec ant
, je l’utilise pour indiquer une pause de 5 secondes:
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
C'est-à-dire que target: 5000
et value
sont vides. Comme l'indique la référence:
pause (waitTime)
Arguments:
- waitTime - la durée de sommeil (en millisecondes)
Attendez la durée spécifiée (en millisecondes)
Votre meilleur pari est probablement waitForCondition
et écrire une fonction javascript qui retourne vrai lorsque la carte est chargée.
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 jamais utilisez Thread.Sleep car cela rend vos tests peu fiables
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. Les autres langues prennent en charge "sommeil 5" ou heure (10). vous avez plusieurs options pour simplement attendre une heure donnée.
Cela attendra que votre lien apparaisse, puis vous pourrez cliquer dessus.
Command: waitForElementPresent Target: link=do something Value:
Avant la commande clickAndWait
, ajoutez 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 d'attente au lieu de pause est la plupart du temps plus efficace et plus stable.
Celui que j'ai trouvé fonctionne pour le site que je teste est celui-ci:
waitForCondition | Selenium.browserbot.getUserWindow (). $. Active == 0 | 20000
Klendathu
Dans Chrome, pour "Selenium IDE", je me battais également pour ne pas faire de pause. Il fera une pause, si vous donnez comme ci-dessous:
Cela fera une pause pendant 10 secondes.