При выходе из аккаунта по ссылке
<a href="login.php?do=logout&logouthash=4637900989834072386734876" onclick="return log_out('Вы действительно хотите выйти?')">Выход</a>
появляется диалоговое окно с кнопками “ок” и “отмена”.
Но на этом диалоге не действует контекстное меню браузера, чтобы понять как найти и обработать эту кнопку с помощью вебдрайвера.
При инициализации firefox вебдрайвера я использую
CapabilityType.UNEXPECTED_ALERT_BEHAVIOUR, UnexpectedAlertBehaviour.IGNORE
но видно на это диалоговое окно это не срабатывает.
Как подтвердить выход на этом диалоге?
Попробовал сделать так
Keyboard keyboard = ((HasInputDevices) wd).getKeyboard();
keyboard.pressKey(Keys.ENTER); // ошибка - строка 217
но показывает ошибку на указанной строке
Exception in thread "main" org.openqa.selenium.UnhandledAlertException: Modal dialog present: Вы действительно хотите выйти?
Driver info: org.openqa.selenium.firefox.FirefoxDriver
Capabilities [{platform=WINDOWS, acceptSslCerts=true, javascriptEnabled=true, cssSelectorsEnabled=true, databaseEnabled=true, browserName=firefox, handlesAlerts=true, nativeEvents=false, webStorageEnabled=true, rotatable=false, locationContextEnabled=true, applicationCacheEnabled=true, takesScreenshot=true, version=47.0.2}]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:206)
at org.openqa.selenium.remote.ErrorHandler.createUnhandledAlertException(ErrorHandler.java:187)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:154)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:678)
at org.openqa.selenium.remote.RemoteExecuteMethod.execute(RemoteExecuteMethod.java:35)
at org.openqa.selenium.remote.RemoteKeyboard.pressKey(RemoteKeyboard.java:43)
at main.Start.run(Start.java:217)
at main.Start.main(Start.java:40)