首页 > 解决方案 > 切换到默认框架会引发 NullReferenceException

问题描述

我正在使用 C# 中的 selenium 和 Nunit 进行一些 Web 测试。我目前在使用 iframe 时遇到一些问题。在我的一种方法中,我想返回默认框架,但使用 driver.SwitchTo().DefaultContent(); 以某种方式抛出 NullReferenceException 。

我也尝试切换到第 0 帧并切换到父帧,同样的问题。

这是实际的方法:

    public void OpenInfoTab(int timeout = 10)
    {
        while (true)
        {
            if (timeout-- < 0) throw new TimeoutException("Infotab Does not open");
            Console.WriteLine(timeout);
            element.Click(InfoTab);
            System.Threading.Thread.Sleep(100);
            try
            {
                element.SwitchTo(InfoFrame);
                element.IsDisplayed(Dip1);

                break;
            }
            catch (AssertionException)
            {
                driver.SwitchTo().DefaultContent();
            }
        }
    }

Iframe 是一个在您单击信息选项卡时打开的窗口,它始终存在,但在单击按钮之前为空。元素.IsDisplayed(Dip1); 如果预期元素在切换后不在 iframe 内,则会抛出异常。如果发生这种情况,我想退出框架并重试。

但由于某种原因,我无法再次切换,因为我的外框应该是空的。

标签: c#seleniumiframenunitnullreferenceexception

解决方案


好的,我发现了问题。我是个大白痴,从未在对象的初始化中继承驱动程序。


推荐阅读