在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
相信很多朋友都有过这样的想法,一些单调的表单提交工作,能不能有一些简单方便的方法来完成这些重复的劳动。 比如说,注册用户啦,网站添加文章啦。。。 呵呵,现在小弟做了一个自动提交程序,说是自动,其实也不算啦,只能算半自动。 主要是用Webbrowser控件来完成,所以说速度上比不上HTML的IDHTTP来得快。多线程也没有使用到,因为用webbrowser线程好象没能 发挥太大的作用,webbrowser在线程运用中也很容易假死。。。
1、获取webbrowser自动提交表单的ID和索引。
下面介绍一下程序的使用方法以及它的源码及分析。 第一步 首先在输入要提交的网页地址。 例如: 我们输入:www.baidu.com 点击分析网页,然后就可以把网页的INPUT标签都列出来了。 可以看到ID为Wd的表单就是百度的输入框了。‘百度一下’这个提交按钮并没有ID类型是submit。 怎么提取这些表单呢: 这里先说一下MSHTML ITEM是MSHTML里一个集合。 网页DOCUMENT对象所有过元素都在这里。可以通过遍历它来得到某个标签的内容。 例如:object.item(0)得到第一个元素。 代码分析: var myitem:Olevariant; myitem:=webbrowser1.Document; for i := 0 to myitem.all.length - 1 do //遍历所有元素 begin if myitem.all.item(i).tagName = 'INPUT' then //表单一为INPUT标签,还有很多,可以换上'BUTTON','TEXTAREA',SELECT下拉选择等。。。 if myitem.all.item(i).type <> 'hidden' then //有些是隐藏不可操作,所以就把这些挑去。 begin stringgrid1.Cells[0,j]:=inttostr(j); stringgrid1.Cells[1,j]:=inttostr(i); //表单的索引号,即表单在集合中的第几个位置。 stringgrid1.Cells[2,j]:=myitem.all.item(i).tagName; stringgrid1.Cells[3,j]:=myitem.all.item(i).type; stringgrid1.Cells[4,j]:=myitem.all.item(i).name; //表单的ID stringgrid1.rowcount:=stringgrid1.rowcount+1; j:=j+1; end; end; 在遍历for i := 0 to myitem.all.length - 1 do 的时候首先要保证webbrowser是有内容的,否则出错。 可以加一句判断:if form1.webbrowser1.Document = nil then exit; 好了,这就得到表单的索引和ID啦。。。怎么自动提交呢? 按下来的话题就是提交了。。。呵呵 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论