你好 ,
我正在自动化一个网站,当试图登录时,它会弹出一个安全警报。想单击该弹出窗口的“是”,任何人都可以为此提供解决方案。
每次服务器获得新代码时,我都会收到安全警告和证书警告。这对我有用:
browser.AddDialogHandler(new DialogHandlerHelper());
browser.AddDialogHandler(new SecurityAlertDialogHandler());
Assert.IsTrue(browser.Link(Find.ByText("Login")).Exists);
browser.Link(Find.ByText("Login")).Click();
if (browser.Element("expertContentHeading").Exists)
{
browser.Element("expertContentHeading").Click();
browser.Button("exceptionDialogButton").Click();
int Handle = browser.hWnd.ToInt32();
object BT = true;
WshShell WSH = new WshShell();
WSH.SendKeys("{TAB}", ref BT);
WSH.SendKeys("{TAB}", ref BT);
WSH.SendKeys("{TAB}", ref BT);
WSH.SendKeys("{TAB}", ref BT);
WSH.SendKeys("{ENTER}", ref BT);
}
if (browser.Links.Exists("overridelink"))
{
browser.Link("overridelink").Click();
}
有两种方法可以处理这个问题,在测试开始时添加一个对话框处理程序,或者在需要时显式添加一个。这是在开始时添加一个运行的单独线程的方法。
IE ie = new IE();
ie.AddDialogHandler( new SecurityDialoghandLer() .. or the appropriate dialog handler ...);
The rest of your test ...