Member 11383935 Ответов: 1

Как использовать фреймы в веб-браузере gecko


Мне удается сделать это для webBrowser, и теперь я буду lke делать то же самое для браузера gecko, но получаю ошибку:
"'Gecko.GeckoDocument' does not contain a definition for 'Window' and no extension method 'Window' accepting a first argument of type 'Gecko.GeckoDocument' could be found (are you missing a using directive or an assembly reference?)"

HtmlElement sr = default(HtmlElement);
HtmlElementCollection Elems = default(HtmlElementCollection);
Elems = webBrowser1.Document.GetElementsByTagName("input");
   try
     {
sr = webBrowser1.Document.Window.Frames["s_MainFrame"].Document.GetElementById("e-mailoutline-row-($Inbox)1");
string tr = sr.InnerText;
      if (tr != "Inbox")
       {
        ZaDruguformu();
       }
       else
       {
timer1.Start();
       }
       }
catch (Exception ex)
       {
       }


Что я уже пробовал:

GeckoHtmlElement sr = default (GeckoHtmlElement);
GeckoElementCollection Elems = default(GeckoElementCollection);
try
 {
sr=geckoWebBrowser1.Document.Window.Frames["s_MainFrame"].Document.GetElementById("e-mailoutline-row-($Inbox)1");
string tr = sr.InnerText;
if (tr != "Inbox")
{
ZaDruguformu();
}
else
{
timer1.Start();
}
}
catch (Exception ex)
{
}

1 Ответов

Рейтинг:
1

DanCaraca

Найдите рамку элемента.
Получить ContentWindow
Преобразование в документ

Ex (получение первого кадра):

var lstFrame = geckoWebBrowser1.Document.GetElementsByTagName("FRAME");
if (lstFrame.Lenght < 1)
    return;
var content= ((Gecko.DOM.GeckoFrameElement)lstFrame[0]).ContentWindow;
var document = content.Document as GeckoDocument;

//Now search element as you like
sr = document.GetElementById("e-mailoutline-row-($Inbox)1");

.....