使用c#处理webbrowser控件在不同域名中的跨域问题

使用c#处理webbrowser控件在不同域名中的跨域问题

ID:27830684

大小:88.00 KB

页数:7页

时间:2018-12-06

使用c#处理webbrowser控件在不同域名中的跨域问题_第1页
使用c#处理webbrowser控件在不同域名中的跨域问题_第2页
使用c#处理webbrowser控件在不同域名中的跨域问题_第3页
使用c#处理webbrowser控件在不同域名中的跨域问题_第4页
使用c#处理webbrowser控件在不同域名中的跨域问题_第5页
资源描述:

《使用c#处理webbrowser控件在不同域名中的跨域问题》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、使用C#处理WebBrowser控件在不同域名中的跨域问题们在做web测试时,经常会使川WebBrowser來进行一些自动化的任务而冇些网页上面会川IFrame去嵌套别的页面,这些页而可能不是在相同域名下的,这时就会出现跨域问题,无法直接在WebBrowser中获取到IFrame中的元素,接卜•来介绍如何解决此问题,需要了解的朋友可以参考下我们在做web测试时,经常会使用WebBrowser来进彳亍一些白动化的任务。而有些网页上面会用IFrame去嵌套别的页面,这些页面可能不是在相同域名下的,这时就会出现跨域问题,无法直接在WebBrowser中获取到IFrame中的元素。下而来做个试验,口己

2、写个页而恢套一个百度的首页,然后在我们自己的页而上输入要査询的词,最后在百度上自动完成搜索。复制代码代码如下:height二”500“

测试值:vinputid=,,search,,typ

3、e=ntext"/>

下面再建一个简单的WinForm.1程测试一下,界面如下:卜而就是WebBrowser的测试代码:复制代码代码如下:usingSystem;usingSystem.Windows.Forms;namespaceWebBrowserTest{publicpartialclassForml:Form{publicForml(){InitializeComponent();}privatevoidbuttonl_Click(objectsender,EventArgse){this.webBrowserl.Navigate(this.tex

4、tBoxl.Text);}privatevoidbutton2_Click(objectsender,EventArgse){vardoc=this.webBrowserl.Document;varframes=doc.Window.Frames;StringtestValue=doc.GetElementByld("search").GetAttribute("value");frames[0].Document.GetElementByld("kw").SetAttribute("value,,/testValue);frames[0].Document.GetElementByld("s

5、u").lnvokeMember("click");}}}我们运行我们的测试程序后,加载之前我们自己写的页面后,在自己的页面上输入我们要查询的词,点击测试按钮,就会看到程序报未处理UnauthorizedAccessException错误:下而来编写一个Helper类来解决这个问题,主要原理人致就是利用IWebBrowser2这个接口来获取Ifream中的Dom,IWebBrowser2中的document可以转换为IHtmlDocumentl,IHtmlDocument2,IHtmlDocument3o复制代码代码如下:usingSystem;usingSystem.Runtime」nter

6、opServices;usingSystem.Windows.Forms;usingmshtml;namespaceWebBrowserTest{//ThisistheCOMIServiceProviderinterface,notSystem.IServiceProvider.Netinterface![Comlmportf),ComVisible(true),Guid(,,6D5140Cl-7436-llCE-8034-00AA006009FA,,)/InterfaceTypeAttribute(ComlnterfaceType」nterfacelslllnknown)]publicint

7、erfaceIServiceProvider{[return:MarshalAs(UnmanagedType.l4)][PreserveSig]intQueryService(refGuidguidService,refGuidriid,[MarshalAs(UnmanagedType」nterface)]outobjectppvObject);}publicenumOLECMDF{OLECMDF

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。