delphi WebBrowser的使用方法详解(四)-webbrowser轻松实现自动填表
webbrowser轻松实现自动填表
步骤如下:
第一步:获取网页 调用Webbrowser 的Navigate系列函数。等待网页装载完成,得到document对象。 在调用 webBrowser.Document 之前,请确保 Webbrowser 网页装载完成,可以通过Webbrowser的DocumentCompleted事件进行监视。 小技巧 先指定一个变量
步骤如下:
第一步:获取网页
调用Webbrowser 的Navigate系列函数。等待网页装载完成,得到document对象。
在调用 webBrowser.Document 之前,请确保 Webbrowser 网页装载完成,可以通过Webbrowser的DocumentCompleted事件进行监视。
小技巧
先指定一个变量:
IsCompleted
在调用Webbrowser 的Navigate,Refresh系列函数之前,将IsCompleted设为false。
在DocumentCompleted事件中,如果 ReadyState 为 WebBrowserReadyState.Complete(值为4),则设IsCompleted为true.
调用webBrowser.Document之前对IsCompleted进行判断。如果不为true,则延时循环等待,直到IsCompleted被设为true.
第二步:设置网页元素数据
确保得到document对象之后,通过 GetElementById 获取网页元素,如:
HtmlElement user = webBrowser.Document.GetElementById("user");
HtmlElement password = webBrowser.Document.GetElementById("password");
设置网页元素值:
user.InnerText = "myname";
password.InnerText = "123456";
小技巧
作用 SetAttribute 设置下拉框,复选框,多选框数据
下拉框:
secret.SetAttribute("value", "question1");
复选框
rememberme.SetAttribute("Checked", "True");
多选框
cookietime.SetAttribute("checked", "checked");
当然,在SetAttribute 之前,也可以用GetAttribute取相关的属性先进行判断,再根椐需要进行设置。
第三步:提交网页数据
先取提交的按钮对象。
HtmlElement submit = webBrowser.Document.GetElementById("submit");
进行提交
submit.InvokeMember("click");
就是怎么简单。整个过程也就是 http get和post的过程。
当然也可以用低级点的WebRequest,还有更低级的socket来做,不过,现在的众多页面都有这样,那样的变形验证码,如果你和我一样,搞不定验证码识别,又贪图快点完成任务,上面的办法绝对是又快,又好。
webbrowser通过属性(tag)遍历查找元素
function GetDocLinkByHref(doc : IHTMLDocument2;str_url:string):IHTMLAnchorElement;
var
i : Integer;
label_iDispatch : iDispatch;
label_element : IHTMLAnchorElement;
begin
Result := nil;
doc := webbrowser1.document as Ihtmldocument2;
if not Assigned(doc) then
Exit;
for i:=0 to doc.links.length-1 do
begin
label_iDispatch := doc.links.item(i,0);
label_element := doc.links.item(I,0) as IHTMLAnchorElement;
if (AnsiPos(str_url,(doc.links.item(I,0) as IHTMLElement).getAttribute('tag',0))>0)
then
begin
Result := label_element;
Break;
end;
end;
end;
delphi WebBrowser的使用方法详解(四)-webbrowser轻松实现自动填表的更多相关文章
- delphi WebBrowser的使用方法详解(五)-难点释疑
网页代码:<SELECT id=fy onchange=TouchRefresh(1) name=fy> <OPTION selected value=15>每頁顯示15筆&l ...
- delphi WebBrowser的使用方法详解(六)
通篇引用mshtml; 一.webbrowser获取滚动条的位置 function GetScrollPositionX(FWB:TEmbeddedWB):Integer; //水平滚动条位置 ...
- delphi WebBrowser的使用方法详解(三)
WebBrowser 操作记要 WebBrowser1.GoHome; //到浏览器默认主页 WebBrowser1.Refresh; //刷新 WebBrowser1.GoBack; //后退 ...
- Delphi中TStringList类常用属性方法详解
TStrings是一个抽象类,在实际开发中,是除了基本类型外,应用得最多的. 常规的用法大家都知道,现在来讨论它的一些高级的用法. 先把要讨论的几个属性列出来: 1.CommaText 2.Delim ...
- session的使用方法详解
session的使用方法详解 Session是什么呢?简单来说就是服务器给客户端的一个编号.当一台WWW服务器运行时,可能有若干个用户浏览正在运正在这台服务器上的网站.当每个用户首次与这台WWW服务器 ...
- ecshop后台增加|添加商店设置选项和使用方法详解
有时候我们想在Ecshop后台做个设置.radio.checkbox 等等来控制页面的显示,看看Ecshop的设计,用到了shop_config这个商店设置功能 Ecshop后台增加|添加商店设置选项 ...
- CURL使用方法详解
php采集神器CURL使用方法详解 作者:佚名 更新时间:2016-10-21 对于做过数据采集的人来说,cURL一定不会陌生.虽然在PHP中有file_get_contents函数可以获取远程 ...
- JAVA 注解的几大作用及使用方法详解
JAVA 注解的几大作用及使用方法详解 (2013-01-22 15:13:04) 转载▼ 标签: java 注解 杂谈 分类: Java java 注解,从名字上看是注释,解释.但功能却不仅仅是注释 ...
- Js apply 方法 详解
Js apply方法详解 我在一开始看到JavaScript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文章对apply方法和call的一些示例,总算是看的有点眉目了,在这 ...
随机推荐
- ul li列子
<html> <body> <p>有序列表:</p> <ol> <li>打开冰箱门</li> <li>把 ...
- Mac系统常用快捷键
Mac系统常用快捷键,摘录自: https://www.cnblogs.com/ios8/p/Mac-OSX-keyword-cmd.html 以下为常用的快捷键 ctrl+shift 快速放大doc ...
- 截图保存 matlab
file=dir('D:\Program Files\MATLAB\R2014a\bin\MyPro\OCR\图像中时间识别\')for i=3:length(file) path= strcat(' ...
- 判断颜色信息-RGB2HSV(opencv)
前言 项目车号识别过程中,车体有三种颜色黑车黑底白字.红车红底白字.绿车黄底绿字,可以通过判断车体的颜色信息,从而判断二值化是否需要反转,主要是基于rgb2hsv函数进行不同颜色的阈值判断. matl ...
- HDU 1024:Max Sum Plus Plus(DP,最大m子段和)
Max Sum Plus Plus Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- CTF-练习平台-Misc之 再来一道隐写
十二.再来一道隐写 下载文件后打开,用常用的几个方法都没有找到有用的信息,然后观察图片发现搞度有点低,所以用WinHex打开把图片高度改大,保存.再次打开图片发现flag
- hdu1081 DP类最大子段和(二维压缩+前缀和数组/树状数组计数)
题意:给出一个 n * n 的数字矩阵,问最大子矩阵和是多少. 由于和最长子段和问题类似,一开始想到的就是 DP ,一开始我准备用两个循环进行 DP ,对于每一个 (i,j) ,考察(i - 1,j) ...
- LeetCode Majority Element Python
Given an array of size n, find the majority element. The majority element is the element that appear ...
- 关于发现宇宙微波背景(CMB)辐射的一则趣闻
请看下图: 上图是发现宇宙存在微波背景(CMB)的样子有点怪异的射电望远镜(口径5米,即Holmdel horn antenna天线).该天线具有较好的抗干扰的性能, ...
- Oracle 联机重做日志文件(ONLINE LOG FILE)
--========================================= -- Oracle 联机重做日志文件(ONLINE LOG FILE) --================== ...