在以前版本的 Selenium 2 中,我没有选择通过覆盖 Javascript 中的 window.alert 来处理 Internet Explorer 中的警报:
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 以找出原因。