Web浏览器控件未显示Html,但显示网页
我使用webbrowser控件自动执行任务,站点使用框架显示页面。 我的问题是我到了一个地步,在那里我可以看到webbrowser控件上正确加载的网页,但是当它进入代码,我看到html我什么都看不到。Web浏览器控件未显示Html,但显示网页
我在这里也看到了其他的例子,但所有这些都没有返回所有的浏览器html。
我得到通过使用该什么:
HtmlWindow frame = webBrowser1.Document.Window.Frames[1];
string str = frame.Document.Body.OuterHtml;
就是:
的与SRC标签等类似属性主框架的标签,有没有什么办法如何处理这种情况的原因,因为我可以看到完全加载的网页为什么我看不到html?因为当我在Internet Explorer上这样做时,我确实看到加载的页面源代码为什么不在这里?
附加信息
有在页面上两个帧:
我使用它来如上:
HtmlWindow帧= webBrowser1.Document.Window.Frames [0] ;
string str = frame.Document.Body.OuterHtml;
,我得到正确的HTML第一帧,但对于第二个我只看到:
<FRAMESET frameSpacing=1 border=1 borderColor=#ffffff frameBorder=0 rows=29,*><FRAME title="Edit Search" marginHeight=0 src="http://web2.westlaw.com/result/dctopnavigation.aspx?rs=WLW12.01&ss=CXT&cnt=DOC&fcl=True&cfid=1&method=TNC&service=Search&fn=_top&sskey=CLID_SSSA49266105122&db=AK-CS&fmqv=s&srch=TRUE&origin=Search&vr=2.0&cxt=RL&rlt=CLID_QRYRLT803076105122&query=%22LAND+USE%22&mt=Westlaw&rlti=1&n=1&rp=%2fsearch%2fdefault.wl&rltdb=CLID_DB72585895122&eq=search&scxt=WL&sv=Split" frameBorder=0 name=TopNav marginWidth=0 scrolling=no><FRAME title="Main Document" marginHeight=0 src="http://web2.westlaw.com/result/dccontent.aspx?rs=WLW12.01&ss=CXT&cnt=DOC&fcl=True&cfid=1&method=TNC&service=Search&fn=_top&sskey=CLID_SSSA49266105122&db=AK-CS&fmqv=s&srch=TRUE&origin=Search&vr=2.0&cxt=RL&rlt=CLID_QRYRLT803076105122&query=%22LAND+USE%22&mt=Westlaw&rlti=1&n=1&rp=%2fsearch%2fdefault.wl&rltdb=CLID_DB72585895122&eq=search&scxt=WL&sv=Split" frameBorder=0 borderColor=#ffffff name=content marginWidth=0><NOFRAMES></NOFRAMES></FRAMESET>
UPDATE
帧的两个网址是为如下:
Frame1其html我看到
http://web2.westlaw.com/nav/NavBar.aspx?RS=WLW12.01&VR=2.0&SV=Split&FN=_top&MT=Westlaw&MST=
式2其HTML我不明白:
感谢:
http://web2.westlaw.com/result/result.aspx?RP=/Search/default.wl&action=Search&CFID=1&DB=AK%2DCS&EQ=search&fmqv=s&Method=TNC&origin=Search&Query=%22LAND+USE%22&RLT=CLID%5FQRYRLT302424536122&RLTDB=CLID%5FDB6558157526122&Service=Search&SRCH=TRUE&SSKey=CLID%5FSSSA648523536122&RS=WLW12.01&VR=2.0&SV=Split&FN=_top&MT=Westlaw&MST=
和第二帧,其HTML我不明白是在下面的图片的属性你
我付了上述问题的解决方案,它的工作原理是100%。
我所做的是使用下面这个函数,它返回我数到我所寻找的标签,我找不到:秒。使用这个调用的函数如下:
FillFrame(webBrowser1.Document.Window.Frames);
private void FillFrame(HtmlWindowCollection hwc)
{
if (hwc == null) return;
foreach (HtmlWindow hw in hwc)
{
HtmlElement getSpanid = hw.Document.GetElementById("mDisplayCiteList_ctl00_mResultCountLabel");
if (getSpanid != null)
{
doccount = getSpanid.InnerText.Replace("Documents", "").Replace("Document", "").Trim();
break;
}
if (hw.Frames.Count > 0) FillFrame(hw.Frames);
}
}
希望它有助于人们。
谢谢
为了采取HTML你必须这样做:
WebClient client = new WebClient();
string html = client.DownloadString(@"http://*.com");
这是一个当然的例子,您可以更改地址。顺便说一句,你需要使用System.Net;
嗨,我不认为它解决了任何只是测试太..:X – confusedMind 2012-02-11 14:11:59
这工作得很好...得到BODY元素与所有内部元素:
某处在你的表单代码:
wb.Url = new Uri("http://*.com");
wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(wbDocumentCompleted);
这里是wbDocumentCompleted:
void wb1DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
var yourBodyHtml = wb.Document.Body.OuterHtml;
}
WB是System.Windows.Forms.WebBrowser
UPDATE:
和文件一样,我认为你r第二帧在您检查其内容时未加载...您可以尝试从this链接中获得解决方案。您将不得不等待您的帧被加载才能看到它的内容。
不,因为我说它只需要帧标签,并且帧的innerhtml是
我错过了你有框架问题的事实。看看我更新的答案:)。如果它仍然不起作用,你能否在你的问题中发布你的确切代码,因为可能发生了你做错的其他事情。 – 2012-02-12 15:34:30
最可能的原因是帧索引0与主/父页面具有相同的域名,而帧索引1具有不同的域名。我对么?
这会产生一个跨框架安全问题,而WB控制只会让你变得很干燥,并且不会告诉你地球出了什么问题,而只是让你的对象,属性和数据为空(将会显示“No当您尝试展开对象时,在监视窗口中显示“变量”)。
在这种情况下你可以访问的唯一东西就是URL和iFrame属性,但没有任何iFrame。
当然,有一些方法可以解决跨框架安全问题 - 但它们并未嵌入到WebBrowser控件中,它们是外部解决方案,具体取决于您使用的是哪个WB控件(如.NET版本或预.NET版本)。
如果我已正确识别您的问题,请告知我,如果是这样,如果您希望我告诉您有关适合您的WB控制实例的解决方案。
更新:我注意到,你在做一个.getElementByTagName(“HTML”)(0).outerHTML拿到HTML,所有你需要做的就是把这个文档对象,或上。身体对象,应该这样做。 MyDoc.Body.innerHTML应该得到你想要的内容。此外,请注意,这些文档中还有其他iFrames,以防相关。你能否给我们提供这两个网址的主文档URL,以便我们/我可以复制你在这里做的事情?此外,不知道为什么你使用DomElement,但你应该把它转换为它想要投射到的本地对象,无论是IHTMLDocument2还是观察窗口中看到的对象,我认为这是IHTMLFrameElement(如果我记得正确,但是一旦你看到它,你就会明白我的意思)。如果您尝试使用XML对象,这可能是您无法获取HTML内容,更改对象声明并转换为对象声明(如果有)的原因,并且让我们知道:)。现在我很好奇:)。
嗨,谢谢你的帮助:),请看上面的问题描述我已经更新了,, :) – confusedMind 2012-02-12 12:57:42
我贴了解决方案:),谢谢你的帮忙 – confusedMind 2012-02-13 19:30:16
你的问题是一个跨框架的安全问题,我已经发布了一个答案,不妨一读,我们会为您找到一个解决方案:)。 – 2012-02-12 12:15:30
@ Erx_VB.NExT.Coder任何帮助:) – confusedMind 2012-02-12 13:29:32