2012-05-21 22 views

Odpowiedz

5

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.

0

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.

Powiązane problemy