Jeśli nie trzeba sprawdzić, czy rzeczywiście pojawia się alert, polecam zmianę zachowania metody JavaScript alert()
zalogować wiadomość Zamiast:
JavascriptExecutor javascriptExecutor = (JavascriptExecutor) webDriver;
javascriptExecutor.executeScript("window.alert = function(message){ console.log(message); };" +
"window.confirm = function(message){ console.log(message); return true; };");
Następnie można pominąć HtmlUnitDriver.switchTo().alert().accept()
w kodzie .
Uwaga: Metoda ta nie będzie działać, jeśli na początkowym wczytaniu strony pojawia się alert od Selen czeka na stronę należy załadować przed interakcji z nim. Powyższy skrypt JavaScript zostanie wykonany zbyt późno.
Od HtmlUnitDriver
wersji 2.25
, HtmlUnitDriver.switchTo().alert().accept()
nie zgłasza UnsupportedOperationException()
. Jednak accept()
appears to do nothing except confirm that the alert is present. Ponieważ alertu nie można odrzucić, wyłączenie alertów za pomocą powyższej metody jest prawdopodobnie najlepszym/jedynym rozwiązaniem. Jeśli musisz przetestować alerty pod numerem HtmlUnitDriver
, możesz potrzebować dwóch oddzielnych testów - jednego do sprawdzenia, czy alert pojawia się, a drugiego do sprawdzenia, czy przeglądarka działa poprawnie, gdy alarm jest wyłączony.
Jeśli rozpaczliwie potrzebują powiadomienie przekazanie i jesteś w porządku z budynku od źródła, alert handling has been implemented in the master
branch of HtmlUnitDriver
. Nie jestem pewien, kiedy pojawi się w wydaniu.