Szukam bardziej eleganckiego sposobu na odświeżenie strony podczas testów (używam Selenium2). Po prostu wysyłam klawisz F5, ale zastanawiam się, czy sterownik ma metodę odświeżania całej strony. Oto mój kod
while(driver.findElements(By.xpath("//*[text() = 'READY']")).size() == 0 )
driver.findElement(By.xpath("//body")).sendKeys(Keys.F5);
//element appear after text READY is presented
driver.findElement(By.cssSelector("div.column a")).click();
Może jest lepsze rozwiązanie do znalezienia elementu na ręcznie odświeżanej stronie
selenium
refresh
webdriver
selenium-webdriver
pbaranski
źródło
źródło
driver.navigate().refresh()
w nagłówku żądania jest napisane „no-cache” i w rezultacie bezwarunkowo przeładowuje całą zawartość. Podczas gdy naciśnięcie klawisza F5 może spowodować żądanie „If-Modified-Since”, to może otrzymać odpowiedź „304 Not Modified”. Musisz pamiętać o tej różnicy, jeśli przeprowadzasz testy obciążenia.W Pythonie istnieje sposób to zrobić:
driver.refresh()
. W Javie może być inaczej.Alternatywnie możesz
driver.get("http://foo.bar");
, chociaż myślę, że metoda odświeżania powinna działać dobrze.źródło
driver.get("http://foo.bar")
równie dobrze po prostu użyćdriver.get(driver.current_url)
W Pythonie
Korzystanie z metody wbudowanej
lub wykonując JavaScript
źródło
5 różnych sposobów odświeżania strony internetowej za pomocą Selenium Webdriver
Nie ma specjalnego dodatkowego kodowania. Właśnie wykorzystałem istniejące funkcje na różne sposoby, aby działały. Tutaj są :
Korzystanie z metody sendKeys.Keys
Korzystanie z metody navigate.refresh ()
Korzystanie z metody navigate.to ()
Korzystanie z metody get ()
Korzystanie z metody sendKeys ()
źródło
Znalazłem różne sposoby na odświeżenie aplikacji w selenie: -
Aby uzyskać kod na żywo, zapoznaj się z linkiem http://www.ufthelp.com/2014/11/Methods-Browser-Refresh-Selenium.html
źródło
Oto nieco inna wersja C #:
źródło
Alternatywny dla Odśwież stronę (F5)
(lub)
źródło
Ważną rzeczą do zapamiętania jest to, że wywołanie driver.navigate (). Refresh () czasami wydaje się być asynchroniczne, co oznacza, że nie czeka na zakończenie odświeżania, po prostu „uruchamia odświeżanie” i nie blokuje dalszego wykonania podczas ponownego ładowania strony przez przeglądarkę.
Chociaż wydaje się, że zdarza się to tylko w nielicznych przypadkach, doszliśmy do wniosku, że lepiej jest upewnić się, że działa to w 100%, dodając ręczne sprawdzenie, czy strona naprawdę zaczęła się ponownie ładować.
Oto kod, który napisałem dla tego w naszej klasie obiektów strony bazowej:
Kilka uwag:
Ponownie, w zdecydowanej większości przypadków pętla do / while jest uruchamiana jednorazowo, ponieważ kod poza navigate (). Refresh () nie jest wykonywany, dopóki przeglądarka nie załaduje całkowicie strony, ale widzieliśmy przypadki, w których w rzeczywistości przejście przez tę pętlę zajmuje kilka sekund, ponieważ funkcja navigate (). refresh () nie blokowała się, dopóki przeglądarka nie zakończy ładowania.
źródło
Możesz też spróbować
źródło
Istnieje również przypadek, gdy chcesz odświeżyć tylko określony element iframe na stronie, a nie całą stronę.
Robisz to w następujący sposób:
źródło
W PHP:
źródło
Inny sposób na odświeżenie bieżącej strony przy użyciu selenu w Javie.
Użycie tego spowoduje odświeżenie bieżącej strony, tak jak kliknięcie paska adresu przeglądarki i naciśnięcie klawisza Enter.
źródło
W R możesz użyć metody refresh, ale na początek przechodzimy do adresu URL metodą navigate:
źródło