Selenium IDE - Befehl zum Warten von 5 Sekunden


89

Ich verwende die Selenium IDE für Firefox und suche nach einem Wartebefehl. Mein Problem ist, dass ich eine Website mit einer eingebetteten externen Karte testen möchte. Das Laden dieser externen Karte dauert 3-5 Sekunden.

Meine Befehle:

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

Antworten:


105

Verwenden Sie den Befehl pause und geben Sie die Anzahl der Millisekunden in das Feld Ziel ein.

Stellen Sie die Geschwindigkeit auf die schnellste ein (Aktionen -> Schnellste), sonst funktioniert es nicht.


Danke dir! Ich habe den Befehl ausgeführt, aber Selen macht keine Pause. Befehl = Pause, Wert = 10000
LaPhi

53
Verwenden Sie Targetanstelle von Value. Befehl = Pause, Ziel = 1000.
Khairul

1
@Khairul froh, dass du diesen Kommentar hinzugefügt hast, es hat mich verrückt gemacht, warum pause()es nicht funktioniert!
Cchana

Die Geschwindigkeit hat keinen Einfluss auf den Pausenbefehl. Stattdessen sagt @Khairul: Setzen Sie ihn ins Ziel.
Mendhak

Wenn Sie am Ende eines Testfalls eine Pause einlegen, wenn Sie eine Testsuite ausführen, funktioniert dies nicht
Alfonso Fernandez-Ocampo

84

Dies verzögert die Dinge um 5 Sekunden:

Befehl: Pause
Ziel: 5000
Wert:

Dies verzögert die Dinge um 3 Sekunden:

Befehl: Pause
Ziel: 3000
Wert:

Dokumentation:

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

Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein


2
Also, setzen Sie 5000 für 5 Sekunden
Ripon Al Wasim

1
Das ist verrückt, dass sie das Ziel zum Wert machen würden, der in Millisekunden warten soll. Liebe es. Vielen Dank für die Veröffentlichung, da ich nicht einmal versucht habe, den Wert in das Ziel einzugeben.
John Z

6

Für diejenigen, die mit arbeiten ant, benutze ich dies, um eine Pause von 5 Sekunden anzuzeigen:

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

Das heißt target: 5000und valueleer. Wie aus der Referenz hervorgeht:

Pause (Wartezeit)

Argumente:

  • waitTime - die Zeit zum Schlafen (in Millisekunden)

Warten Sie auf die angegebene Zeit (in Millisekunden).



1

Dies macht das, wonach Sie in C # suchen (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 */);

Und verwenden Sie niemals Thread.Sleep, da dies Ihre Tests unzuverlässig macht


Viel bessere Option in Selen 2.
Craastad

0

Der Befehl pause kann direkt im ide im HTML-Format verwendet werden.

Wenn Sie Java oder C verwenden, können Sie Thread.sleep (5000) verwenden. Die Zeit ist in Millisekunden. Andere Sprachen unterstützen "sleep 5" oder time.sleep (5). Sie haben mehrere Möglichkeiten, nur auf eine festgelegte Zeit zu warten.


2
Thread.Sleep ist nie eine gute Idee und deshalb bietet Selen Wait Primitive. Wenn Sie sie verwenden, können Sie einen viel höheren Zeitlimitwert angeben, wodurch Tests zuverlässiger werden, ohne sie zu verlangsamen, da die Bedingung so oft ausgewertet werden kann, wie es erforderlich ist, z. alle 50ms.
Pawel Pabich

Meine Antwort in der Datei thread.sleep bezieht sich nur auf die Beantwortung der Frage, wie sie in der Idee warten soll. Als Pause wird in thread.sleep übersetzt, wenn Sie in der ide von html nach java oder c konvertieren.
Rattlerbred

0

Fügen Sie vor dem Befehl clickAndWaitden folgenden Code hinzu, damit das Skript wartet, bis der spezifische Link sichtbar wird:

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

Die Verwendung der Wartebefehle anstelle der Pause ist in den meisten Fällen effizienter und stabiler.


0

Dies wartet, bis Ihr Link angezeigt wurde, und dann können Sie darauf klicken.

Command: waitForElementPresent Target: link=do something Value:


0

Eine, die ich für die Site gefunden habe, die ich teste, ist diese:

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

Klendathu


0

In Chrome hatte ich für "Selenium IDE" auch Probleme damit, dass es nicht pausiert. Es wird angehalten, wenn Sie wie folgt geben:

  • Befehl: Pause
  • Ziel: leer
  • Wert: 10000

Dies wird für 10 Sekunden angehalten.


1
Ziel sollte 10000 sein und Wert sollte leer sein
Sirmyself

Ich bin mir nicht sicher, welches Browser-Plugin Sie verwenden, aber das hat in Chrome gut funktioniert. Hängt auch davon ab, welche Erweiterung Sie verwenden.
TechSingh
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.