Hej!
Jag är nybörjare på kod men försöker lära mig. Håller just nu på att försöka göra lite handkodade UI tester för en webbapplikation.
Problemet jag fastnat på är att jag får inte koden att vänta i X antal sekunder på att webbsidan har laddat klart innan koden kör vidare.
Jag har tills nu använt mig av:
Men insåg snabbt att det är ingen snygg lösning, speciellt inte när sidan ibland laddas klart på 2 sekunder, då går ju många sekunder till spillo bara för att vänta
Jag anropar denna metod efter varje klick där jag får en sidladdning:
Anropen gör jag enligt nedan exempel:
("Browser" är min parent.)
Det verkar som att koden hoppar över eller ignorerar WaitForPageToLoad(Browser, 120); raden, eller så fungerar den inte?
Har fått lite hjälp på stackoverflow men sitter fortfarande fast med detta och vänder mig därför nu till er på Flashback forumet.
Är det någon som har tips på hur jag kan få till detta? Eller någon annan lösning för att få koden att vänta tills webbsidan har laddat klart innan den fortsätter sin exekvering?
Jag är nybörjare på kod men försöker lära mig. Håller just nu på att försöka göra lite handkodade UI tester för en webbapplikation.
Problemet jag fastnat på är att jag får inte koden att vänta i X antal sekunder på att webbsidan har laddat klart innan koden kör vidare.
Jag har tills nu använt mig av:
Kod:
Thread.Sleep(10000);
Men insåg snabbt att det är ingen snygg lösning, speciellt inte när sidan ibland laddas klart på 2 sekunder, då går ju många sekunder till spillo bara för att vänta
Jag anropar denna metod efter varje klick där jag får en sidladdning:
Kod:
public void WaitForPageToLoad(BrowserWindow Browser, int WaitTimeOut)
{
// Waiting on all threads enable to wait for any background process to complete
Playback.PlaybackSettings.WaitForReadyLevel = WaitForReadyLevel.AllThreads;
// Wait
Browser.WaitForControlReady(WaitTimeOut * 1000);
// Revert the playback settings (As waiting on all threads may sometime have a toll on execution speed
Playback.PlaybackSettings.WaitForReadyLevel = WaitForReadyLevel.UIThreadOnly;
}
Anropen gör jag enligt nedan exempel:
Kod:
ClickButton(Repo.LeftButton(Browser));
WaitForPageToLoad(Browser, 120);
("Browser" är min parent.)
Det verkar som att koden hoppar över eller ignorerar WaitForPageToLoad(Browser, 120); raden, eller så fungerar den inte?
Har fått lite hjälp på stackoverflow men sitter fortfarande fast med detta och vänder mig därför nu till er på Flashback forumet.
Är det någon som har tips på hur jag kan få till detta? Eller någon annan lösning för att få koden att vänta tills webbsidan har laddat klart innan den fortsätter sin exekvering?