【发布时间】:2017-08-03 21:35:46
【问题描述】:
我正在为一个用 ASP.NET MVC5 编写的 Web 应用程序自动化一些测试,该应用程序也使用 jQuery。我一直在寻找在 IE 中使用 Selenium 时处理警报确认框的选项。
我需要确认框上的消息,但我不需要单击对话框上的任何内容。这是我现在拥有的:
public bool IsAlertPresentAndCorrect(string Message)
{
try
{
WebDriverWait Wait = new WebDriverWait(Driver, System.TimeSpan.FromSeconds(10));
Wait.Until(ExpectedConditions.AlertIsPresent());
ReadOnlyCollection<string> Handles = Driver.WindowHandles;
string ToUse = "";
foreach (string Handle in Handles)
{
if (!Driver.CurrentWindowHandle.Equals(Handle))
{
ToUse = Handle;
}
}
IAlert Alert = (IAlert) Driver.SwitchTo().Window(ToUse);
return Alert.Text.Equals(Message);
}
catch (NoAlertPresentException)
{
return false;
}
finally
{
_driver.SwitchTo().DefaultContent();
}
}
我也尝试使用IAlert Alert = Driver.SwitchTo().Alert() 和IAlert Alert = Driver.SwitchTo().ActiveElement() 来代替获取窗口句柄,但它们也不起作用。
无论我使用什么代码,问题都是一样的:OpenQA.Selenium.UnhandledAlertException: Modal dialog present。
任何帮助将不胜感激
【问题讨论】:
-
你能发布警报的截图吗?
-
完成@SouvikGhosh