C# 获取GeckoFx firefox浏览器控件iframe html不可访问

C# 获取GeckoFx firefox浏览器控件iframe html不可访问,c#,iframe,geckofx,C#,Iframe,Geckofx,我正在使用Geckofx22C#web浏览器控件,但无法访问iframe中的标记。当我检查gecko innerhtml时,似乎尽管iframe标记在html中显示,但它的内容没有显示 这是我用来获取浏览器控件内部html的代码,它只是将iframe标记显示为空(当它应该包含另一个文档时): 之前,我使用类似于以下代码的代码访问各个元素,这些元素工作正常: GeckoDocument checkDoc = (GeckoDocument)webBrowser.Window.Document; va

我正在使用Geckofx22C#web浏览器控件,但无法访问iframe中的标记。当我检查gecko innerhtml时,似乎尽管iframe标记在html中显示,但它的内容没有显示

这是我用来获取浏览器控件内部html的代码,它只是将iframe标记显示为空(当它应该包含另一个文档时):

之前,我使用类似于以下代码的代码访问各个元素,这些元素工作正常:

GeckoDocument checkDoc = (GeckoDocument)webBrowser.Window.Document;
var x = (checkDoc.GetElementsByTagName("a").Where(b => b.Id == "ipt-form-format-aside").First());

我能够获取单个元素并更改它们的值/触发事件等,而主html文档没有问题,但是iframe中的任何内容都不可能获取的元素。我想可能Iframe还没有加载或者类似的东西。有没有办法强制控件在尝试访问其元素之前等待I帧加载?

我只是为可能遇到此问题的任何其他人发布此消息

string content = null;
var iframe = webBrowser.Document.GetElementsByTagName("iframe").FirstOrDefault() as Gecko.DOM.GeckoIFrameElement;
if(iframe != null)
{
    var html = iframe.ContentDocument.DocumentElement as GeckoHtmlElement;
    if (html != null)
        content = html.OuterHtml;
}
foreach (GeckoIFrameElement _E in geckoWebBrowser1.Document.GetElementsByTagName("iframe"))
{
    if (_E.GetAttribute("class") == "testClass")
    {
        var innerHTML = _E.ContentDocument;

        foreach (GeckoHtmlElement _A in innerHTML.GetElementsByTagName("input"))
        {
            _A.SetAttribute("value", "Test");
        }
    }
}

我在尝试访问iframe时遇到了类似的问题,所以我使用了

checkDoc.Window.Frames(1)
而不是

checkDoc.GetElementsByTagName("iframe")

括号内的值(即此处的1)取决于索引

这不起作用。不幸的是,在尝试访问元素时,iframe没有完全加载。最后,我使用了另一种方法,不需要使用这种方法。这里没有有效的答案。同样的问题:
checkDoc.GetElementsByTagName("iframe")