如何查询网页清除获得控件ID数据的ID

一隐归尘,浮志潺潺
常见的获取控件并点击(自动登录):
var txtUserID = wbsTask.Document.All["userName"];
var txtPsd = wbsTask.Document.All["password"];
var txtVrf = wbsTask.Document.All["code"];var btnSubmit = wbsTask.Document.All["btnSubmit"];
var code = ReadLoginVerifyCode();
var userInfo = cboAccount.ComboBox.SelectedValue as UserI
if (userInfo == null) { MessageBox.Show("获取用户信息失败!"); return; }
txtUserID.SetAttribute("value", userInfo.UserID);
txtPsd.SetAttribute("value", userInfo.Password);
txtVrf.SetAttribute("value", code);if (string.IsNullOrWhiteSpace(code)) return;
btnSubmit.InvokeMember("click");//自动提交
特殊需求:查找webbrowser页面上的一个无ID无Name的A控件,后台模拟点击事件。
初始代码:
var b = wbsTask.Document.Body.InnerText.Contains("XXX");
if (!b) return false;
foreach (HtmlElement he in wbsTask.Document.GetElementsByTagName("a"))
if (he.InnerText == "XXX")
he.InvokeMember("click");
最后发现无法引发click事件,而a处的代码为:
&a href="javascript:;" onclick="dialog(650,450,'zzz','../../dialog/sss.aspx?id=bbb');" class="link_t"&XXX&/a&
也就是说click事件调用了一个javasript函数。
为毛没有执行he.InvokeMember("click")这句呢?我百思不得其解。附带说明,上面的代码是在documentComplete事件时调用的,所以页面加载已经完成。
在网上搜寻解决方案,得几种提示
提示一:html代码已经加载完毕,但js还没有加载完毕,解决方案timer一下。
if (he.InnerText == "XXX")
new Action(() =&
System.Threading.Thread.Sleep(10000);
new Action(() =& he.InvokeMember("click")).InvokeRun(this);
}).RunThread();
这里的InvokeRun(this)是多线程回调,RunThread新开线程执行代码。测试结果:无效--------.
提示二:click变Click或onclick,无效。
if (he.InnerText == "XXX")
wbsTask.Document.Focus();
IHTMLElement nativeElement = he.DomElement as IHTMLE
nativeElement.click();
测试结果:无效*-----
最终解决方案:
if (he.InnerText == "XXX")
var obj = he.DomE
var mi = obj.GetType().GetMethod("click");
mi.Invoke(obj, new object[0]);
成功搞定!
阅读(...) 评论()后使用快捷导航没有帐号?
只需一步,快速开始
查看: 844|回复: 4
窗口_取控件ID() 控件ID是不是固定的呀
阅读权限20
结帖率: (1/2)
窗口_取控件ID() 控件ID是不是固定的呀
有没有什么弊端&&求知 谢谢各位大佬
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
揭阳精易科技有限公司申明:我公司所有的培训课程版权归精易所有,任何人以任何方式翻录、盗版、破解本站培训课程,我们必将通过法律途径解决!
公司简介:揭阳市揭东区精易科技有限公司致力于易语言教学培训/易语言学习交流社区的建设与软件开发,多年来为中小企业编写过许许多多各式软件,并把多年积累的开发经验逐步录制成视频课程供学员学习,让学员全面系统化学习易语言编程,少走弯路,减少对相关技术的研究与摸索时间,从而加快了学习进度!
防范网络诈骗,远离网络犯罪
违法和不良信息举报电话,QQ: ,邮箱:@b.qq.com
Powered by
X3.2 揭阳市揭东区精易科技有限公司
粤公网安备 25使用getElementById(IDValue)可以获得指定 ID 属性值的第一个对象的一个引用,但如果不知道IDValue,有什么方法获得吗?
在js里获取动态的id,形如$(&#动态id&)
js中document通过ID获取的一些使用方法
js 如何调用另一个页面id 内容
在JS中获取控件的值
js 如何在多个按钮中获取点击按钮的id值
JS获取jsp页面中的参数
js前端取服务器控件的值
JSP中根据id把input值传到js中
没有更多推荐了,C#如何获得webbrowser控件中打开网页中的控件的ID_百度知道
C#如何获得webbrowser控件中打开网页中的控件的ID
请教!!!不通过查看html的代码,知道网页上某个控件或者按钮的ID和Name。比如打开百度搜索,单击“百度一下”,就能在textbox中显示“百度一下”这个按钮的ID和Name。不要审查html代...
请教!!!不通过查看html的代码,知道网页上某个控件或者按钮的ID和Name。比如打开百度搜索,单击“百度一下”,就能在textbox中显示“百度一下”这个按钮的ID和Name。不要审查html代码,查看源文件的方式我知道,用C#代码实现。
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
来自电脑网络类芝麻团
采纳数:159
获赞数:1031
参与团队:
常用方法:Navigate(string urlString):浏览urlString表示的网址Navigate(System.Uri url):浏览url表示的网址Navigate(string urlString, string targetFrameName, byte[] postData, string additionalHeaders): 浏览urlString表示的网址,并发送postData中的消息//(通常我们登录一个网站的时候就会把用户名和密码作为postData发送出去)GoBack():后退GoForward():前进Refresh():刷新Stop():停止GoHome():浏览主页WebBrowser控件的常用属性:Document:获取当前正在浏览的文档DocumentTitle:获取当前正在浏览的网页标题StatusText:获取当前状态栏的文本Url:获取当前正在浏览的网址的UriReadyState:获取浏览的状态WebBrowser控件的常用事件:DocumentTitleChanged,CanGoBackChanged,CanGoForwardChanged,DocumentTitleChanged,ProgressChanged,ProgressChanged
采纳数:58
获赞数:65
你说的是不是获取鼠标下的元素那就是webBrowser1.Document.ActiveElement.Id
比如“百度一下”,我怎么能单击这个按钮的同时就在testbox显示这个按钮的ID和Name?”百度一下“怎么过的这个按钮的ID呢?这个好像没有click事件,也没有输入焦点
在webbrowser的Document_MouseUp/Document_MouseDown事件里写
本回答被提问者采纳
来自电脑网络类芝麻团
采纳数:2713
获赞数:4153
参与团队:
webBrowser1.Document.ActiveElement.Id在webbrowser的Document_MouseUp/Document_MouseDown事件里写补充:C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司 .NET windows网络框架的主角。
为你推荐:
其他类似问题
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。C# webBrowser控件 如何查找没有id没有name的元素?_百度知道
C# webBrowser控件 如何查找没有id没有name的元素?
&divclass=&mt_r&&&inputtype=&submit&class=&btn_submit&value=&提交&/&&/div&以上是web的代码,我现在要想通过webBrowse找到这个submit按钮,并且现实自动提交。现在主要问题是没有...
&div class=&mt_r&&
&input type=&submit& class=&btn_submit& value=&提交& /&
&/div&以上是web的代码,我现在要想通过webBrowse找到这个submit按钮,并且现实自动提交。现在主要问题是没有ID,没有name,所以不好办
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
来自电脑网络类芝麻团
采纳数:1115
获赞数:1257
参与团队:
  getElementsByTagName用于获取拥有指定标签名的元素集合.比如获取所有的IMG元素, 则使用getElementsByTagName(&IMG&),取到元素集合之后,再循环遍历每一个元素,根据属性值判断是否目标元素;在元素个数固定时,也可以集合中的元素下标直接确定元素。  对于DOM结构比较复杂的文档,该方法返回的集合中元素数量可能较大,这时可以利用getElementById或getElementsByName方法查找目标元素的祖先元素中拥有ID或Name的元素,然后再利用getElementsByTagName定位到目标元素,以提高查找的准确度。
采纳数:124
获赞数:320
遍历所有html元素 用它的html代码找
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
foreach (HtmlElement he in webBrowser1.Document.All)
if (he.OuterHtml == &&INPUT class=btn_submit value=提交 type=submit&&)
he.InvokeMember(&click&);
本回答被提问者采纳
为你推荐:
其他类似问题
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。}

我要回帖

更多关于 易语言控件ID是唯一的吗 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信