动态警报生成Selenium Webdriver C#

时间:2016-04-27 18:55:25

标签: c# selenium

我使用以下代码处理警报:

ts.getDriver().SwitchTo().Alert().Accept();

哪个工作正常,但我偶尔会出现警报并不总是弹出的情况。有人能提供解决方案吗?我似乎无法找到正确的语法来处理C#中的条件。

谢谢,

1 个答案:

答案 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();