我使用以下代码处理警报:
ts.getDriver().SwitchTo().Alert().Accept();
哪个工作正常,但我偶尔会出现警报并不总是弹出的情况。有人能提供解决方案吗?我似乎无法找到正确的语法来处理C#中的条件。
谢谢,
答案 0 :(得分:1)
你必须使用try catch来处理它。即使AlertIsPresent
也是这样实现的。
try
{
ts.getDriver().SwitchTo().Alert().Accept();
}
catch (NoAlertPresentException)
{
// do nothing...
}
如果你想隐藏这种丑陋,可以将其包含在扩展方法中:
public static class SwitchExtensions
{
public static IAlert AlertOrNull(this ITargetLocator locator)
{
try
{
return locator.Alert();
}
catch (NoAlertPresentException)
{
return null;
}
}
}
用法:
var alert = driver.SwitchTo().AlertOrNull();
if (alert != null)
alert.Accept();