enter image description here我正在尝试使用Visual Basic自动化我们的票务系统。但是,我无法保存配置文件,因为即使我已经设置了它的值,webbrowser中的字段仍被读取为空:
我还尝试设置属性originalvalue
,prekeyvalue
等,但仍然无法正常工作。但是,如果您在该字段中手动键入值,它将起作用。
我的下面的代码:
WebBrowser1.Document.GetElementById("mb8a86d99-tb").SetAttribute("value", "EMAIL")
以下字段的信息:
<input datatype="0" id="mb8a86d99-tb" aria-required="true" role="textbox" aria-labelledby="mb8a86d99-lb" class="fld text fld fld_req" ctype="textbox" li="mb8a86d99-img" maxlength="512" style=";width:225.0px;" async="1" ae="setvalue" type="text" value="" ov="" work="1" fldinfo="{"lookup":"valuelist","dsid":"TSDTKTSOURCE","inttype":"0","afindex":"0","length":"512","required":true}" title="" originalvalue="" prekeyvalue="" stoptcclick="true">
答案 0 :(得分:0)
当包含您的form
的{{1}}未激活时,某些网页似乎会出现这种问题(这是一种在客户端的保护形式,可以避免通过编程方式插入值)。
如果您手动在其中键入值,则input
会变为活动状态,因为您正在单击form
的子级input
。但是,如果您以编程方式进行操作,则不会触发激活,因此客户端不会采用您添加到HTML的值。
您可以尝试在输入中使用form
方法来模拟表单的激活:
Focus
如果仍然不起作用,请尝试在一个命令和另一个命令之间添加WebBrowser1.Document.GetElementById("mb8a86d99-tb").Focus
WebBrowser1.Document.GetElementById("mb8a86d99-tb").SetAttribute("value", "EMAIL")
,以使表单有时间实际激活自身。