微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

IgnoreExceptionTypes不起作用(C#Webdriver)

我发现在C#中是使用webdriverwait类还是DefaultWait类,在任何一种情况下,IgnoreExceptionTypes方法似乎都不起作用.

即在任何一种情况下,当对我的页面运行时,抛出StaleElementReferenceException,尽管我指示代码忽略这些异常.

webdriverwait示例:

public void WaitElementToBeClickable(IWebElement element)
    {
        var wait = new webdriverwait(Driver,TimeSpan.FromSeconds(60));
        wait.IgnoreExceptionTypes(typeof(NoSuchElementException),typeof(StaleElementReferenceException));
        wait.Until(ExpectedConditions.ElementToBeClickable(element));
    }

DefaultWait示例:

public IWebElement SafeWaitFordisplayed(IWebElement webElement) {

    var w = new DefaultWait<IWebElement>(webElement);
            w.Timeout = TimeSpan.FromSeconds(30);
            w.IgnoreExceptionTypes(typeof(NoSuchElementException),typeof(StaleElementReferenceException));
            return w.Until(ctx =>
            {
                var elem = webElement;
                if (elem.displayed)
                    return elem;
                else
                    return null;
            });
    }

感激地收到任何建议.网络上似乎很少有关于这种特定方法的使用,而其他人发现它不起作用,也没有建议的解决方法.

解决方法

IgnoreExceptionTypes将仅在整个等待期间持续,直到超时.我正在使用DefaultWait,就像你期望它返回null一样.它不是.达到超时后,它将抛出异常.因此,我将它包含在try catch中,以便在超时时适当地处理异常.

原文地址:https://www.jb51.cc/c/118256.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐