操作webbrowser页面输入框元素
两种方法 var i:integer; Doc:IHTMLDocument2; input:OleVariant; userinputelement,pwdinputelement,ValidateElement:ihtmlinputelement; ValidateImage: IHTMLImgElement; imagecount:integer; form:ihtmlformelement; myitem:Olevariant;begin Doc:=WebBrowser1.document as ihtmldocument2; if doc=nil then exit;// 第一种方式 userinputelement:=(doc.all.item('nicknameId',0) as ihtmlinputelement); userinputelement.value:=edit7.text;
<p style="margin: 10px auto; font-family: verdana, sans-serif; font-size: 13px; line-height: 19.5px;">加入单元mshtml</p><p style="margin: 10px auto; font-family: verdana, sans-serif; font-size: 13px; line-height: 19.5px;"><span style="font-size:14px;"><strong>演示表单提交</strong></span></p><p style="margin: 10px auto; font-family: verdana, sans-serif; font-size: 13px; line-height: 19.5px;"><span face="Courier New" style="font-family: 'Courier New';">procedure TForm1.Button1Click(Sender: TObject);
var
Doc:IHTMLDocument2;
<span style="font-family: 'Courier New'; font-size: 13px; line-height: 19.5px; white-space: pre; background-color: rgb(240, 240, 240);"> </span>input:OleVariant;
<span style="font-family: 'Courier New'; font-size: 13px; line-height: 19.5px; white-space: pre; background-color: rgb(240, 240, 240);"> </span>userinputelement,pwdinputelement:ihtmlinputelement;
begin
<span style="font-family: 'Courier New'; font-size: 13px; line-height: 19.5px; white-space: pre; background-color: rgb(240, 240, 240);"> </span>doc:=webbrowser1.document as ihtmldocument2;
<span style="font-family: 'Courier New'; font-size: 13px; line-height: 19.5px; white-space: pre; background-color: rgb(240, 240, 240);"> </span>userinputelement:=(doc.all.item('user'(也就是网页中用户名控件的名字),0) as ihtmlinputelement);
<span style="font-family: 'Courier New'; font-size: 13px; line-height: 19.5px; white-space: pre; background-color: rgb(240, 240, 240);"> </span>userinputelement.value:=edit1.text;(也就是你要向网页输入的东西)
<span style="font-family: 'Courier New'; font-size: 13px; line-height: 19.5px; white-space: pre; background-color: rgb(240, 240, 240);"> </span>pwdinputelement:=(doc.all.item('password',0) as ihtmlinputelement);
<span style="font-family: 'Courier New'; font-size: 13px; line-height: 19.5px; white-space: pre; background-color: rgb(240, 240, 240);"> </span>pwdinputelement.value:=edit2.text;
<span style="font-family: 'Courier New'; font-size: 13px; line-height: 19.5px; white-space: pre; background-color: rgb(240, 240, 240);"> </span>input:=doc.all.item('submit',0);
<span style="font-family: 'Courier New'; font-size: 13px; line-height: 19.5px; white-space: pre; background-color: rgb(240, 240, 240);"> </span>input.click;
end;</span></p> <pre name="code" class="delphi">1. 自动填写表单并发布
pwdinputelement:=(doc.all.item('pwd',0) as ihtmlinputelement);
pwdinputelement.value:=edit8.text;
pwdinputelement:=(doc.all.item('name',0) as ihtmlinputelement);
pwdinputelement.value:=edit9.text;
myitem:=WebBrowser1.document;
// 第二种方式 并可操作 combo radio select 元素表
for i:=0 to myitem.all.length-1 do
begin
///
if myitem.all.item(i).tagName = 'SELECT' then // 下拉框选择
begin
if myitem.all.item(i).Name='birth_year' then
myitem.all.item(i).value:='1980'; //
end;
if myitem.all.item(i).tagName = 'INPUT' then
begin
if Uppercase(myitem.all.item(i).type)='RADIO' then
begin
if myitem.all.item(i).value='男生' then myitem.all.item(i).checked:=true; // 选中值是 '求'的选项
end;
if Uppercase(myitem.all.item(i).type)=Text then
begin
myitem.all.item(i).value='';
end;
end;
end;
2.操作超链接
var
i:integer;
myitem:Olevariant;
begin //xid_reg_handle
myitem:=WebBrowser1.document;
// 第一种方式
aVal:=myitem.getElementById('xid_reg_handle').href;
myitem.getElementById('xid_reg_handle').click; // 模拟点击超链接
showmessage(InttosTr(myitem.Links.length));
for i:=0 to myitem.Links.length-1 do
begin
// myitem.Links.item(i).href // hrefUrl 可获取
if myitem.Links.item(i).innertext='名称' then // <a href=''> 名称' </a>
myitem.Links.item(i).click;// 模拟点击超链接
end;
end;