2014-09-21 60 views
1

此代码访问iframe并获取我的源代码。如何点击iframe中的按钮/链接? (GeckoFx)

string content = null; 
var iframe = browser.Document.GetElementsByTagName("iframe").FirstOrDefault() as Gecko.DOM.GeckoIFrameElement; 
if (iframe != null) 
{ 
    var html = iframe.ContentDocument.DocumentElement as GeckoHtmlElement; 
    if (html != null) 
     content = html.OuterHtml; 

    textBox1.Text = content; 
} 

我试过puting一些代码

string content = null; 
var iframe = browser.Document.GetElementsByTagName("iframe").FirstOrDefault() as Gecko.DOM.GeckoIFrameElement; 
if (iframe != null) 
{ 
    var html = iframe.ContentDocument.DocumentElement as GeckoHtmlElement; 
    if (html != null) 
     content = html.OuterHtml; 

    textBox1.Text = content; 

    GeckoElementCollection elements = browser.Document.GetElementsByName("username"); 
    foreach (var element in elements) 
    { 
     GeckoInputElement input = (GeckoInputElement)element; 
     input.Value = "Auto filled!"; 
    } 
} 

但它不会工作的代码不发现的元素。有任何想法吗?

尝试搜索谷歌的任何iframe的例子,但似乎没有任何好的文档。

+0

检查这个答案http://stackoverflow.com/a/25854559/2224701 – 2014-09-21 16:05:14

+0

我知道硒webdriver的,我试过,但我需要用火狐浏览器(geckoFx) – Edgar 2014-09-21 17:18:20

回答

1

你为什么要在主文档中查找?你应该在一个框架中寻找。

string content = null; 
var iframe = browser.Document.GetElementsByTagName("iframe").FirstOrDefault() as Gecko.DOM.GeckoIFrameElement; 
if (iframe != null) 
{ 
    var html = iframe.ContentDocument.DocumentElement as GeckoHtmlElement; 
    if (html != null) 
     content = html.OuterHtml; 

    textBox1.Text = content; 

    GeckoElementCollection elements = iframe.ContentDocument.GetElementsByName("username"); 
    foreach (var element in elements) 
    { 
     GeckoInputElement input = (GeckoInputElement)element; 
     input.Value = "Auto filled!"; 
    } 
} 
+0

哦工作,“browser.Document”是主要文件。 “iframe.ContentDocument”iframe doc。感谢帮助! – Edgar 2014-09-23 13:19:27