WebBrowser里网页根据文字判断来点击链接 无Name及ID时
- uses ActiveX, ComObj, MSHTML;
- 根据连接文字点击连接- 一般情况下的连接
- Procedure HTMLClinkByText(text:string;Wbr:TWebBrowser);
- var
- doc:IHTMLDocument2;
- len,I:integer;
- item:OleVariant;
- all:IHTMLElementCollection;
- begin
- doc:=Wbr.Document as IHTMLDocument2;
- all:=doc.Get_links;
- len:=all.length;
- for I:=0 to len-1 do
- begin
- item:=all.item(I,varempty);
- if pos (text,item.InnerText)>0 then //判断连接文字包含内容
- begin
- Wbr.Navigate(item.href);
- end;
- end;
- end;
- 使用的时候,要点击包含"联系"这两个字的链接
- HTMLClinkByText('联系',WebBrowser1);
- ----------------------------------------------------------------------------------------------
- Iframe 里面的连接点击
- function GetFrame(FrameNo: Integer): IWebbrowser2;
- var
- OleContainer: IOleContainer;
- enum: IEnumUnknown;
- unk: IUnknown;
- Fetched: PLongint;
- begin
- while Webbrowser1.ReadyState <> READYSTATE_COMPLETE do
- Application.ProcessMessages;
- if Assigned(Webbrowser1.document) then
- begin
- Fetched := nil;
- OleContainer := Webbrowser1.Document as IOleContainer;
- OleContainer.EnumObjects(OLECONTF_EMBEDDINGS, Enum);
- Enum.Skip(FrameNo);
- Enum.Next(1, Unk, Fetched);
- Result := Unk as IWebbrowser2;
- end
- else
- Result := nil;
- end;
- procedure TForm1.Button4Click(Sender: TObject);
- var
- doc,frm:IHTMLDocument2;
- iw:IWebbrowser2;
- i,j,len: integer;
- all:IHTMLElementCollection;
- item:OleVariant;
- begin
- doc:=Webbrowser1.Document as IHTMLDocument2;
- for i:=0 to doc.frames.length-1 do
- begin
- iw:=GetFrame(i);
- frm:=iw.Document as IHTMLDocument2;
- all:=frm.Get_links;
- len:=all.length;
- for j:=0 to len-1 do
- begin
- item:=all.item(j,varempty);
- ListBox1.Items.Add(item.InnerText+' ~ '+item.href); //文字和相应的连接
- //根据上面那个Pos判断 item.InnerText 里包含你要点击的内容
- //然后 Webbrowser1.Navigate(item.href); ................................
- end;
- end;
- end;
WebBrowser里网页根据文字判断来点击链接 无Name及ID时的更多相关文章
- 如何判断WebBrowser浏览器网页加载完成
在工作中遇到了这样的问题,那就是要判断WebBrowser浏览器网页是否加载完成,通过搜索发现网友们解决这一问题的几种方法,但都不能解决实际问题,现在我们就来看看网友们是如何解决这一问题的. 一.通过 ...
- C# 网络编程之webBrowser获取网页url和下载网页中图片
该文章主要是通过C#网络编程的webBrowser获取网页中的url并简单的尝试瞎子啊网页中的图片,主要是为以后网络开发的基础学习.其中主要的通过应用程序结合网页知识.正则表达式实现浏览.获取url. ...
- 用webBrowser打开网页出现脚本错误怎么办
当IE浏览器遇到脚本错误时,在浏览器左下角会出现一个黄色图标,点击可以查看脚本错误的详细信息,并不会有弹出的错误信息框.我们在用webBrowser编写的程序打开网页,遇到脚本有问题是,会弹出一个错误 ...
- access数据库:怎么直接从access里把数据里同样的文字替换成空字符""
access数据库:怎么直接从access里把数据里同样的文字替换成空字符"" 搜所到文字后,替换的项里写"",就是了.一定要是英文的""
- c# webbrowser 获取用户选中文字
原文:c# webbrowser 获取用户选中文字 最近一直被一个问题困扰,有一个文本框,一个webbrowser控件,一个上下文菜单, webbrowser 获取用户选中文字" tit ...
- JS为网页添加文字水印【原创】
最近需要实现为网页添加水印的功能,由于水印的信息是动态生成的,而百度谷歌上的方法往往都是为网页添加图片水印或为图片添加水印,而为网页添加文字水印相关资料较少,于是就自己动手写了这个代码. 通常加动态水 ...
- winform中webBrowser模拟网页操作中遇到的问题
我们通过网页上传一些特殊数据的时候,由于必填项众多,数量量大的时候,会发现工作相当繁琐,前段时间做了一个winform内嵌webBrowser模拟网页上传文档的小工具,发现了许多问题,总结一下: 先说 ...
- JS让网页上文字出现键盘打字的打字效果
一个挺简单的网页特效:JS让网页上文字出现键盘打字的打字效果实现 演示地址:http://codepen.io/guihailiuli/pen/jPOYMZ 以代码形式实现过程分析: <html ...
- Java问题记录——循环里的二次判断与状态更新
Java问题记录——循环里的二次判断与状态更新 摘要:本文主要记录了在循环操作时可能出现的问题. 问题重现 在使用循环结构时,如果使用了定时任务,或者代码会多次调用循环结构,可能会导致有些对象会被循环 ...
随机推荐
- 解决:对 PInvoke 函数的调用导致堆栈不对称问题 <转载>
问题描述: 在使用托管代码调用非托管代码时,发生“对 PInvoke 函数“UseTwiHikVisionDllTest!UseTwiHikVisionDllTest.TwiHikVision::Ge ...
- VS error retrieving information from user datastore
搭建好VS2005+PB6.0的开发环境后,新建MFC智能设备应用程序工程出错,错误信息如下: error retrieving information from user datastore 很奇怪 ...
- 多媒体编程基础之RGB和YUV
一.概念 1.什么是RGB? 对一种颜色进行编码的方法统称为“颜色空间”或“色域”.用最简单的话说,世界上任何一种颜色的“颜色空间”都可定义成一个固定的数字或变量.RGB(红.绿.蓝)只是众多颜色空间 ...
- 如何在 Git 里撤销(几乎)任何操作
任何版本控制系统的一个最有的用特性就是“撤销 (undo)”你的错误操作的能力.在 Git 里,“撤销” 蕴含了不少略有差别的功能. 当你进行一次新的提交的时候,Git 会保存你代码库在那个特定时间点 ...
- tip浮动提示框
今天工作中碰到要弹出tip浮动提示框,如服务器控件的ToolTip属性. 通过GOOGLE搜到了一个很好用的tip浮动提示框:TipTip jQuery Plugin. 例子如下: <!DOCT ...
- js的replace方法
今天在项目中发现,js的replace方法,其实只是替换第一个匹配的字符: 比如 backstreetboy.replace('b','B') 得到的结果是Backstreetboy,只是替换了第一个 ...
- SSH Secure Shell Client的傻瓜式使用方法
说明:本记录仅是使用此软件的一种简单的操作方式,如果想深入研究,请做如下三件事: 1)到其官网了解她的前世今生 2)下载她.安装她.操作她(这一步需要不断的尝试.不断的深入.不断的探索,当然最好理论结 ...
- 洛谷P1214 [USACO1.4]等差数列 Arithmetic Progressions
P1214 [USACO1.4]等差数列 Arithmetic Progressions• o 156通过o 463提交• 题目提供者该用户不存在• 标签USACO• 难度普及+/提高 提交 讨论 题 ...
- 理解python先编译后解释的特点
1. CPython默认的标准解释器编译器.JPython支持Java集成,可以生成Java字节码并在JVM中解释执行.IronPython支持.NET集成. 2. 下次运行程序时,python自动检 ...
- Linkedlist,arrayDeque,HashMap,linkedHashMap
Linkedlist 1.extneds AbstractSequentialList, implements List<E>, Deque<E>, Cloneable, ja ...