Selenium IDE - Polecenie czekania przez 5 sekund

90

Używam Selenium IDE dla przeglądarki Firefox i szukam polecenia oczekiwania. Mój problem polega na tym, że chcę przetestować stronę internetową z osadzoną mapą zewnętrzną. Ta mapa zewnętrzna potrzebuje 3-5 sekund na załadowanie.

Moje polecenia:

open /Page/mysite.html
//Wait Command? (5 seconds)
ClickAndWait link=do something
LaPhi
źródło

Odpowiedzi:

107

Użyj polecenia pause i wprowadź liczbę milisekund w polu Cel.

Ustaw prędkość na najszybszą (Akcje -> Najszybsza), w przeciwnym razie to nie zadziała.

Adam Prax
źródło
Dziękuję Ci! Wprowadziłem polecenie, ale Selenium nie zatrzymuje się. Polecenie = pauza, wartość = 10000
LaPhi
53
Użyj Targetzamiast Value. Polecenie = Pauza, Cel = 1000.
khairul
1
@Khairul cieszę się, że dodałeś ten komentarz, doprowadza mnie to do szału, dlaczego pause()nie działa!
cchana
Prędkość nie ma wpływu na polecenie pauzy, jest tak, jak mówi @Khairul: umieść go w celu.
Mendhak
kiedy zatrzymasz się na końcu przypadku testowego podczas uruchamiania zestawu testów, to nie zadziała
Alfonso Fernandez-Ocampo
85

To opóźni rzeczy o 5 sekund:

Polecenie: pauza
Cel: 5000
Wartość:

To opóźni rzeczy o 3 sekundy:

Polecenie: pauza
Cel: 3000
Wartość:

Dokumentacja:

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

wprowadź opis obrazu tutaj wprowadź opis obrazu tutaj

MacGyver
źródło
2
Tak więc ustaw 5000 na 5 sekund
Ripon Al Wasim
1
To szaleństwo, że uczynią cel wartością czekania w milisekundach. Kocham to. Dziękuję za wysłanie tego, ponieważ nawet nie próbowałem wprowadzić wartości w celu.
John Z
6

Dla osób pracujących antużywam tego, aby wskazać pauzę trwającą 5 sekund:

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

To znaczy target: 5000i valuepusty. Jak wskazuje odniesienie:

pauza (waitTime)

Argumenty:

  • waitTime - ilość czasu do uśpienia (w milisekundach)

Poczekaj określony czas (w milisekundach)

fedorqui 'SO przestań szkodzić'
źródło
4

Najlepszym rozwiązaniem jest prawdopodobnie waitForConditionnapisanie funkcji javascript, która zwraca wartość true po załadowaniu mapy.

bogata w kofeinę
źródło
Dzięki za komentarz! Ale czy jest teraz sposób OOTB na czekanie x sekund?
LaPhi
1
Nie, nie ma bezpośredniego sposobu, aby po prostu poczekać x sekund. Zobacz pełną listę obsługiwanych poleceń .
dużą zawartością kofeiny
2
pauza x000 sekund będzie czekać na x sekund
Thunder Rabbit
1

To zrobi to, czego szukasz w 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 */);

I nigdy nie używaj Thread.Sleep, ponieważ powoduje to niewiarygodność testów

Paweł Pabich
źródło
Znacznie lepsza opcja w Selenium 2.
craastad
0

Polecenie pause może być użyte bezpośrednio w IDE w formacie html.

Jeśli używasz java lub C, możesz użyć Thread.sleep (5000). Czas jest w milisekundach. Inne języki obsługują "sleep 5" lub time.sleep (5). masz wiele opcji czekania przez określony czas.

rattlerbred
źródło
2
Thread.Sleep nigdy nie jest dobrym pomysłem i dlatego Selenium zapewnia prymitywy oczekiwania. Jeśli ich używasz, możesz określić znacznie wyższą wartość limitu czasu, co sprawia, że ​​testy są bardziej wiarygodne bez spowalniania ich, ponieważ warunek można oceniać tak często, jak jest to wymagane, np. co 50 ms.
Paweł Pabich
Moja odpowiedź w wątku. Sen jest związana tylko z odpowiedzią na pytanie, jak sprawić, by czekał w ide. Ponieważ pauza jest tłumaczona na thread.sleep podczas konwersji z html do java lub c w IDE.
rattlerbred
0

Przed poleceniem clickAndWaitdodaj następujący kod, aby skrypt czekał, aż konkretny link będzie widoczny:

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

Praktyka używania poleceń czekania zamiast pauzy jest w większości przypadków bardziej wydajna i stabilna.

Jerzy
źródło
0

Będzie to czekać, aż pojawi się twój link, a następnie możesz go kliknąć.

Command: waitForElementPresent Target: link=do something Value:

the_average_average
źródło
0

Jeden, który znalazłem, działa dla testowanej witryny, to ta:

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

Klendathu

Klendathu
źródło
0

W przeglądarce Chrome dla „Selenium IDE” też walczyłem, żeby się nie zatrzymywał. Wstrzyma się, jeśli podasz jak poniżej:

  • Polecenie: pauza
  • Cel: pusty
  • Wartość: 10000

Spowoduje to wstrzymanie na 10 sekund.

TechSingh
źródło
1
Wartość docelowa powinna wynosić 10000, a wartość powinna być pusta
Sirmyself
Nie mam pewności, której wtyczki przeglądarki próbujesz, ale działało dobrze w Chrome. Zależy również od używanego rozszerzenia.
TechSingh