作者Shouian (Shouian)
看板C_Sharp
标题Re: [问题] webbrowser赋值问题
时间Wed Oct 3 07:40:56 2012
: : 问题2:
: : <select
: : name="buyst1" class="station"
: : id="buyst1"
: : onFocus="console.log('user focus handler')"
: : onBlur="console.log('user blur handler')"
: : dojoType="dijit.form.FilteringSelect"
: : autoComplete="false"
: : invalidMessage="非选项资料"
: : >
: : <script type="text/javascript" src="../html/station.js"> </script>
: : </select></td>
: : 问题2的C# Code: HtmlElement element = webBrowser1.Document;
: : element.SetAttribute("value", "001");
: : 我想请问, 问题1中是否该采用InvokeScript的方式去赋值?
: : 问题2中, select的物件在c#中应当如何赋值!?
: : 以上
: : 感谢各位版大花时间阅读至此, 希望能不吝指教!
: 目前临时想到 直接执行javascript
: webBrowser1.Navigate("javascript:function foo(){ var elOptNew =
: document.createElement('option'); elOptNew.text = 'Append' ;
: document.getElementById('buyst1').add(elOptNew);}foo();");
不好意思还想请教各位版大
上一问题中已找到填写资料的方式, 用SetAttribute("selectedindex",index)
可以将数值写入
再用webBrowser1.Document.GetElementById("myForm").InvokeMember("submit")
提交资料
但是事後发现 他在输入後网页要进行加载大约0.5秒钟後才会显示为正确的数值
具体来讲就是:
比如index选择为20, 但是画面上出来的数值会是index为19的结果
(这会造成我输入的数据是错误的 系统会判定有问题)
要等大约0.5秒後才会变成20
中间检查网页状态是interactive
我试过写 while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
在座Application.DoEvents尝试等他加载完全再进行
但是依然没办法
看网路上有人说可以用timer 监视器进行?
我目前想法是希望用执行javascript去强制写入正确的数值到元件内
但是对这方面不熟悉 还希望各位先进能帮忙!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 1.162.108.181
1F:→ charles0203:判断 目前是哪一页网页 10/03 14:08