C# 怎么通过坐标实现模拟点击WebBrowser里面的内容?

请大家先听我说,之所以这么做,是因为有的网站在连接代码上加了很多JS,而且连接是以iframe形式调用的,浏览器不可以跨域访问,所以我访问不到iframe里的代码,所以才... 请大家先听我说,之所以这么做,是因为有的网站在连接代码上加了很多JS,而且连接是以iframe形式调用的,浏览器不可以跨域访问,所以我访问不到iframe里的代码,所以才出现了这样的问题,模拟鼠标去点它,什么代码JS等的东西都会执行,因为跟鼠标点是一样,所以没事! 展开
 我来答
fmfeggman
2012-02-17 · 超过13用户采纳过TA的回答
知道答主
回答量:48
采纳率:0%
帮助的人:36.9万
展开全部
最及至的方法
看你是用做bs的还是cs的但思路都一样,bs可能简单一点

通过WebRequest对象把远程的页面HTML代码获取过来,在加上自己的js脚本执行点击事件
然后创建WebBrowser对象,把获取过来的HTML加载到WebBrowser对象中让他执行
以下是一些思路代码,为你写的,记得加分

string url = this.TextBox.Text.Trim();
WebRequest request = WebRequest.Create(“远程页面地址”);
request.Credentials = CredentialCache.DefaultCredentials;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream stream = response.GetResponseStream();
StreamReader reader = new StreamReader(stream, Encoding.UTF8);
string html = reader.ReadToEnd();
reader.Close();
stream.Close();
response.Close();
html = GetHTMLBody(html);

//获取body内的内容,并把页面中的所有js脚本删除掉
private string GetHTMLBody(string html)
{
Regex rx;
string exp;
exp = @"<\s*body(.+?)<\s*/\s*body\s*>";
rx = new Regex(exp, RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.Singleline);
Match match = rx.Match(html);
if (!match.Success)
return "not match";

string result = match.Value;

exp = @"<\s*script(.+?)<\s*/\s*script\s*>";
rx = new Regex(exp, RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.Singleline);
result = rx.Replace(result, "");
//加上自己的执行脚本,可以自己写点击事件
result = @"<script type='text/javascript' src='jquery-1.7.min.js'></script>";
return result; //返回的内容是去掉头尾,去掉<script后的html代码,把他加到 WebBrowser对象中让他执行就行了。
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式