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
LaPhi
quelle

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.

Adam Prax
quelle
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

MacGyver
quelle
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).

fedorqui 'SO hör auf zu schaden'
quelle
4

Am besten waitForConditionschreiben Sie wahrscheinlich eine Javascript-Funktion, die beim Laden der Karte true zurückgibt.

stark koffeinhaltig
quelle
Vielen Dank für Ihren Kommentar! Aber gibt es jetzt OOTB-Möglichkeiten, um x Sekunden zu warten?
LaPhi
1
Nein, es gibt keine direkte Möglichkeit, nur x Sekunden zu warten. Siehe die vollständige Liste der unterstützten Befehle .
koffeinhaltig
2
Pause x000 Sekunden wird für x Sekunden warten
Thunder Rabbit
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

Pawel Pabich
quelle
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.

klappern
quelle
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.

George
quelle
0

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

Command: waitForElementPresent Target: link=do something Value:

the_average_average
quelle
0

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

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

Klendathu

Klendathu
quelle
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.

TechSingh
quelle
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