В предыдущей версии Selenium 2 у меня не было выбора для обработки предупреждений в Internet Explorer путем переопределения window.alert в Javascript:
IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
// Override window.alert to store the prompt and accept it automatically
js.ExecuteScript("window.alert = function(msg) { document.bAlert = true; document.lastAlert=msg; }");
// Do some stuff...
// Check for alert
Object o = js.ExecuteScript("return document.bAlert");
if (o != null && (bool)o == true)
{
//retrieve the alert message
o = js.ExecuteScript("return document.lastAlert");
// Do something with the alert text
}
Selenium 2.0b3 поддерживает обработку предупреждений в IE и Firefox, поэтому вы можете делать следующее:
IAlert alert = driver.SwitchTo().Alert();
// Get the text from the alert
string alertText = alert.Text;
// Accept the alert
alert.Accept();
Однако мне не удалось заставить вышеуказанное работать с оповещениями Да / Нет (Dismiss () работает для Нет, но Accept () не работает для Да). Я нахожусь в процессе поиска IEDriver, чтобы понять, почему это так.