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;

  

时间: 2024-10-13 09:01:31

WebBrowser里网页根据文字判断来点击链接 无Name及ID时的相关文章

自己尝试写web,网页上点击链接没反应,没有发出http请求。

页面显示了,点击链接无反应,服务器后台没有信息输出.应该是没发送出http请求. 使用的web服务器是python自带的,headfist书里使用的simple_httpd.py.证明该服务器可以供任意自写小程序使用.拿来就用. 初步诊断: 原因一:路径写的不对.把绝对路径写成相对路径就行了.注意反斜杠 <a href="cgi-bin/a.py">button</a> 跟cgi脚本(.py)名称无关.

网页转文字版pdf

因为想把网页转化成文字版pdf供注释,高亮等操作,我尝试了很多的方法,现总结于此: (1)adobe,福昕阅读器等虚拟打印生成pdf: 这种方法是我最先想到的,但是打印出来的是图片版本的pdf,不可编辑及注释,其实虚拟打印我早预料到不是文字版pdf可能性很大. (2)网页另存为pdf: 这个根据浏览器和操作系统的不同操作稍微有些差异,不过大同小异.保存的确实是文字版pdf,但是对于充斥着大量数学公式的网页(维基百科),生成的pdf效果及其糟糕,基本上公式都挂掉了,在pdf中是空置的区域.不过我注

C# 网络编程之webBrowser获取网页url和下载网页中图片

该文章主要是通过C#网络编程的webBrowser获取网页中的url并简单的尝试下载网页中的图片,主要是为以后网络开发的基础学习.其中主要的通过应用程序结合网页知识.正则表达式实现浏览.获取url.下载图片三个功能.而且很清晰的解析了每一步都是以前一步为基础实现的. 一.界面设计 界面设计如下图所示,添加控件如图,设置webBrowser1其Anchor属性为Top.Bottom.Left.Right,实现对话框缩放;设置groupBox1其Dock(定义要绑到容器控件的边框)为Buttom,实

通过WebBrowser获取网页验证码

/// <summary> /// 返回指定WebBrowser中图片<IMG></IMG>中的图内容 /// </summary> /// <param name="WebCtl">WebBrowser控件</param> /// <param name="ImgeTag">IMG元素</param> /// <returns>IMG对象</retur

用webBrowser打开网页出现脚本错误怎么办

当IE浏览器遇到脚本错误时,在浏览器左下角会出现一个黄色图标,点击可以查看脚本错误的详细信息,并不会有弹出的错误信息框.我们在用webBrowser编写的程序打开网页,遇到脚本有问题是,会弹出一个错误提示框,需要确认后才能够进行执行.如果我们设计的程序是用来自动处理网页的,那么在出现这种情况时,程序运行被打断,需要人工干预.这显然无法达到我们的要求. 那么,在使用webBrowser打开网页遇到脚本错误时如何处理才能让程序无干扰的自动运行呢? webBrowser给我们提供了一个属性:Scrip

winform中webBrowser模拟网页操作中遇到的问题

我们通过网页上传一些特殊数据的时候,由于必填项众多,数量量大的时候,会发现工作相当繁琐,前段时间做了一个winform内嵌webBrowser模拟网页上传文档的小工具,发现了许多问题,总结一下: 先说明的是文档是用Excel指定格式制成的表格,数据是通过循环表格数据行上传的. 需求是如果文档已经上传那么必须提示,但上传成功不必提示(因为循环上传的话会弹出很多提示框). 代码如下:添加引用 在扩展程序集中找到Microsoft.mshtmlusing mshtml; 在窗体类上面贴标签: [Com

css和js禁止网页选择文字

user-select有两个值: none:用户不能选择文本 text:用户可以选择文本 需要注意的是:user-select并不是一个W3C的CSS标准属性,浏览器支持的不完整,需要对每种浏览器进行调整 <style> body{ -moz-user-select: none; /*火狐*/ -webkit-user-select: none; /*webkit浏览器*/ -ms-user-select: none; /*IE10*/ -khtml-user-select: none; /*

delphi webbrowser 获取网页源码

转自 http://hi.baidu.com/delphidiary 转自 http://blog.sina.com.cn/s/blog_725fb194010150jh.html //前面要加几个pas单元uses Registry,ShellApi, WinInet,ShlObj,ComObj;//========================================删COOKIES========================== procedure DelRegCache;

JS让网页上文字出现键盘打字的打字效果

一个挺简单的网页特效:JS让网页上文字出现键盘打字的打字效果实现 演示地址:http://codepen.io/guihailiuli/pen/jPOYMZ 以代码形式实现过程分析: <html> <head> <title>打字效果</title> <meta http-equiv="Content-Type" Content="text/html;charset=gb2312" /> <style