C# 怎么通过坐标实现模拟点击WebBrowser里面的内容?
请大家先听我说,之所以这么做,是因为有的网站在连接代码上加了很多JS,而且连接是以iframe形式调用的,浏览器不可以跨域访问,所以我访问不到iframe里的代码,所以才...
请大家先听我说,之所以这么做,是因为有的网站在连接代码上加了很多JS,而且连接是以iframe形式调用的,浏览器不可以跨域访问,所以我访问不到iframe里的代码,所以才出现了这样的问题,模拟鼠标去点它,什么代码JS等的东西都会执行,因为跟鼠标点是一样,所以没事!
展开
2个回答
展开全部
我做过一个浏览器自带的QQ空间的账号密码赋值并登录,和你的问题原理大致一样。
首先你需要找到页面按钮或超链接的事件和ID,目的是触发事件和找到dom元素,
再通过webBrowser获得页面上的id,Document.getElementById(id),或者Document.All["ID"]
下面看一下我的操作:
#region [ 页面填写表单 ]
HtmlElement loginMode = _WebBrowser1.Document.All["switch"];
if (loginMode != null && loginMode.InnerText == "使用其他号码登录")
{
// 这个是执行页面上的事件,显示手动登录账号和密码
_WebBrowser1.Document.InvokeScript("switchpage");
}
HtmlElement userId = _WebBrowser1.Document.All["u"];
HtmlElement userPwd = _WebBrowser1.Document.All["p"];
userId.Focus();
userId.SetAttribute("value", QQ); // 这个QQ是我预设好的了
userPwd.Focus();
userPwd.SetAttribute("value", pass); // 这个密码也是我预设好的
// 然后就是你需要的,找到按钮,触发他的点击
HtmlElement btnSubmit = _WebBrowser1.Document.All["subbtn"];
//webBrowser1.Document.Forms[0].InvokeMember("click");
if (_IsAutoLogin) btnSubmit.InvokeMember("click");
#endregion
差不多就结了吧,对自己的问题要付起责任来,
好心回答你问题,整个半个月不来看一下,这叫个什么事儿?
首先你需要找到页面按钮或超链接的事件和ID,目的是触发事件和找到dom元素,
再通过webBrowser获得页面上的id,Document.getElementById(id),或者Document.All["ID"]
下面看一下我的操作:
#region [ 页面填写表单 ]
HtmlElement loginMode = _WebBrowser1.Document.All["switch"];
if (loginMode != null && loginMode.InnerText == "使用其他号码登录")
{
// 这个是执行页面上的事件,显示手动登录账号和密码
_WebBrowser1.Document.InvokeScript("switchpage");
}
HtmlElement userId = _WebBrowser1.Document.All["u"];
HtmlElement userPwd = _WebBrowser1.Document.All["p"];
userId.Focus();
userId.SetAttribute("value", QQ); // 这个QQ是我预设好的了
userPwd.Focus();
userPwd.SetAttribute("value", pass); // 这个密码也是我预设好的
// 然后就是你需要的,找到按钮,触发他的点击
HtmlElement btnSubmit = _WebBrowser1.Document.All["subbtn"];
//webBrowser1.Document.Forms[0].InvokeMember("click");
if (_IsAutoLogin) btnSubmit.InvokeMember("click");
#endregion
差不多就结了吧,对自己的问题要付起责任来,
好心回答你问题,整个半个月不来看一下,这叫个什么事儿?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询