Jak radzić sobie z alertami javascript onload w selenach?Obsługa alertów javascript w selenach
Nie jest przechwytywany w IDE Selenium ani nie jest obsługiwany przez funkcję getAlert().
Jak radzić sobie z alertami javascript onload w selenach?Obsługa alertów javascript w selenach
Nie jest przechwytywany w IDE Selenium ani nie jest obsługiwany przez funkcję getAlert().
Nawet ja stanąłem w obliczu tego samego problemu. Po kilku godzinach spędzonych z selenem, znalazł rozwiązanie do obsługi alertów i wyskakujących okien JavaScript.
Możemy użyć keyPressNative selenu do obsługi alertów skryptu Java z selenowego RC.
Oto jak mają być stosowane metody key*Native()
:
selenium.keyPressNative("27"); // Escape
selenium.keyPressNative("10"); // Enter
selenium.keyDownNative("16"); // Press and do not relase the shift key, so that
selenium.keyPressNative("79"); // this character will be capitals
selenium.keyUpNative("16"); // Release the shift key, as we don't need it for the
selenium.keyPressNative("67");
Nie jest wskazane, ale pomógł mi w prowadzeniu niektórych niepowodzeń selenu.
Nie można tego zrobić. As stated in Selenium documentation:
Selen stara się ukryć te dialogi z was (zastępując window.alert, window.confirm window.prompt) i tak nie zatrzyma wykonanie strony. Jeśli widzisz okienko z ostrzeżeniem, prawdopodobnie jest ono spowodowane działaniem strony podczas ładowania strony, co zwykle jest zbyt wczesne, abyśmy mogli chronić tę stronę.
Jest to znane ograniczenie Selenium RC (a tym samym Selenium IDE), a także jeden z powodów, dla których opracowano Selenium 2 (WebDriver). Jeśli chcesz złapać alarmy JS onload
, potrzebujesz to use WebDriveralert handling.
Aby obejść ten problem, można użyć Robot
, aby wypełnić dowolny tekst i nacisnąć Enter, a następnie potwierdzić okno dialogowe na ślepo. To nie jest najczystszy sposób, ale może zadziałać. Jednak nie będzie można uzyskać wiadomości o alert
.