延时吧,只能这样处理了。
Dim web As System.Windows.Forms.WebBrowser = e.Form.controls("webbrowser1").basecontrol
web.ScriptErrorsSuppressed = True '禁止弹出脚本错误对话框
Dim fpdm = web.Document.GetElementById("fpdm") 'fa piao代码
Dim fphm = web.Document.GetElementById("fphm") 'fa piao号码
Dim kprq = web.Document.GetElementById("kprq") '开piao日期
Dim kjje = web.Document.GetElementById("kjje") '开具金额或校验码
Dim yzm = web.Document.GetElementById("yzm") '验证码
Dim yzm_img = web.Document.GetElementById("yzm_img")
Dim r As Row = CurrentTable.Current 'fa piao管理表中需要验证的当前行
fpdm.SetAttribute("value", r("fa piao代码")) '填入fa piao代码
fpdm.focus '专piao代码是10位,普piao是12位,必须设置焦点进入,以判断后续是填入开具金额还是校验码
fphm.SetAttribute("value", r("fa piao号码")) '填入fa piao号码
fphm.focus '必须设置焦点进入
Dim a As Date =r("开piao日期") '日期型
Dim b As String = cstr(a) '日期型转字符串
b=left(b,4) + b.SubString(5,2) +right(b,2) '无"-"的字符串
kprq.SetAttribute("value", b) '填入开piao日期
'MessageBox.Show(1)
If r("fa piao代码").Length=10 Then '填入开具金额
kjje.SetAttribute("value", r("开具金额"))
Else '填入校验码
b=r("校验码尾")
web.Document.InvokeScript("eval", new String() {"yzm.onkeydown=function(){kjje.value='" + b + "';};yzm.onfocus=function(){kjje.value='" + b + "';};"})
'kjje.SetAttribute("value", r("校验码尾"))
End If
yzm_img.InvokeMember("click")
yzm.focus
Dim sdt As Date = Date.Now
While Date.Now < sdt.AddSeconds(1) '等到2秒
application.Doevents
End While
If web.Document.GetElementById("yzminfo").Innertext = "" Then
yzm_img.InvokeMember("click")
yzm.focus
End If