autoit3 ie.au3 介绍

autoit3 ie.au3 介绍2011 05 1514 人阅读评论 1 收藏举报文档 ieinput 百度 buttondreamw 第一讲 介绍一下基本的东西如何打开一个网页 太简单 加点要求 1 打开百度 http www baidu com 在百度搜索里面输入 与 autoit3 亲密接触 偶的 blog 2 窗口我要 800 600 隐藏工具栏 而且大小不可更

2011-05-15 14:10
2961人阅读
评论(1)
收藏 举报
文档 ie input 百度 button dreamweaver

第一讲,介绍一下基本的东西

如何打开一个网页,太简单,加点要求

首先我们打开一个浏览器,输入百度的网址,这里要用到_IECreate,这个函数的返回值是指向这个ie窗口的目标变量,参数” 0,1,1,0”,分别的意思是:不找已经存在的www.baidu.com的ie窗口,显示ie,等待网页载入完全然后返回,激活此ie窗口

#include


$oIE = _IECreate (“www.baidu.com”,0,1,1,0)

上面三句,分别是找到name为”f”的表单,在这个表单里面找到name为”wd”的表单元素,这里的wd代表的就是搜索框,最后将wd的内容设置为”与 autoit3 亲密接触”

#include


$oIE = _IECreate (“www.baidu.com”,0,0,1,0);打开一个ie,输入百度网址
_IEPropertySet ($oIE, “toolbar”, 0)
_IEPropertySet ($oIE, “width”, 800)
_IEPropertySet ($oIE, “height”, 600)
_IEPropertySet ($oIE, “resizable”, 0)
_IEPropertySet ($oIE, “title”,”我打开的百度,我做 主”)
_IEPropertySet ($oIE, “statustext”,”欢迎访问 与 autoit3 亲密接触 hi.baidu.com/iokey”)
$oForm = _IEFormGetObjByName ($oIE, “f”)
$oQuery1 = _IEFormElementGetObjByName ($oForm, “wd”)
_IEFormElementSetValue ($oQuery1, “与 autoit3 亲密接触”)
_IEFormSubmit ($oForm,1)
_IEAction ($oIE, “visible”)
Sleep(5000)
MsgBox(0,”提醒”,”确定退出IE”)
_IEAction ($oIE, “quit”)















第二讲,我们开始讨论如何填写表单

第一步,先简单说一下HTML表单(Form).
HTML表单(Form)是HTML的一个重要部分,主要用于采集和提交用户输入的信息。

第二步,我们如何找到一个网页的表单和表单内的控件.
下面我们结合mail.163.com来讲解如何自动填写
这个就是登录时候我们要操作的几个部分:分类如下
1,用户名   
2,密      码  
3,版      本 默   认/极速 3.0 /简   约  
4,记住用户名/增强安全性  
5,登录邮箱/登录网盘






autoit3 ie.au3 介绍

 

CODE
#include


$oIE = _IECreate (“http://mail.163.com”)
$oForms = _IEFormGetCollection ($oIE)
MsgBox(0, “表单信息”, “这个页面上共有” & @extended & “个表单”) 
For $Form In $oForms
MsgBox(0, “表单名称”, $Form.name)
$oQuerys = _IEFormElementGetCollection ($Form)
For $Query In $oQuerys
MsgBox(0, “表单控件信息”, “名称:”&$Query.name & ” 类型:”&$Query.type)
Next
Next










这里只是找到了这些表单/控件,有时还是难分辨具体对于网页上是哪部分,有HTML基础的朋友可以看网页的源文件,核对,无基础的朋友建议借助Dreamweaver来看,不是很难.

第三步,我们来让autoit3填写这个表单,
先说一下思路,因为我们已经可以通过上面的方法找到相关的资料,可以得到如下信息:
表单:一个 名称是login163
1,用户名       : username 类型是text
2,密      码      :passward 类型是passward
3,版      本: 默   认/极速 3.0 /简   约      : selType 类型是 select-one
4,记住用户名/增强安全性      : remuser 类型是 checkbox      / secure 类型是 checkbox 
5,登录邮箱/登录网盘 : 登录邮箱 类型是 submit / 登录网盘      类型是 submit






#include


$oIE = _IECreate (“http://mail.163.com”,0,0,1,0)
_IEPropertySet ($oIE, “toolbar”, 0)
_IEPropertySet ($oIE, “width”, 600)
_IEPropertySet ($oIE, “height”, 600)
_IEPropertySet ($oIE, “resizable”, 0)
$oForm = _IEFormGetObjByName ($oIE, “login163”)
$oQuery = _IEFormElementGetObjByName ($oForm, “username”)
_IEFormElementSetValue ($oQuery, “AutoIt IE.au3”)
$oQuery = _IEFormElementGetObjByName ($oForm, “password”)
_IEFormElementSetValue ($oQuery, “AutoIt IE.au3”)
$oQuery = _IEFormElementGetObjByName ($oForm, “selType”)
_IEFormElementOptionSelect ($oQuery , 1, 1, “byIndex”)












第三讲 介绍一下点击链接相关的函数

1,关于图片的,因为网友问了,所以这讲里面介绍一下
_IEImgClick() 模仿用户对图片的点击动作,可以通过图片描述,名称,链接的字符串或者完全链接地址,实际应用中可能不大常用.
_IEImgGetCollection () 返回文档内所有图片的集合
我们这里举个例子,通过上面两个函数做一个简单的显示图片工具:
一个简单的例子大家如果感兴趣可以可以考虑做个批量下载的.
_IEFormImageClick()模拟在此类()控件上点击.




#include 

$oIE = _IECreate (“http://www.pcpop.com/pp/133556_557953.html”,0,0,1,0)

$oImgs = _IEImgGetCollection ($oIE)

;~ $iNumImg = @extended

;~ MsgBox(0, “Img Info”, “There are ” & $iNumImg & ” images on the page”)

For $oImg In $oImgs

If StringInStr($oImg.src,”www.pcpop.com/pp”) = 0 And StringInStr($oImg.src,”120×120″) = 0 Then

;~      _IECreate($oImg.src,0,1,1,0)

     $sInfo = “Src: ” & $oImg.src & @CR

     $sInfo &= “FileName: ” & $oImg.nameProp & @CR

     $sInfo &= “Height: ” & $oImg.height

     $sInfo &= ”     Width: ” & $oImg.width

     $sInfo &= ”     Border: ” & $oImg.border & @CR

     $sInfo &= “存储位置: ” & @DesktopDir

     InetGet($oImg.src,@DesktopDir&”girl.jpg”,0,1)

     MsgBox(0, “美女图片信息”,$sInfo,8)

EndIf

Next

_IEAction($oIE,”quit”)

 

2,关于链接的论坛也有朋友问过,正好发现一个问题,是在使用过程中发现的,

_IELinkClickByText () 在A版中会出错退出,只能在U版本中使用,这个函数使用方便但是有局限性.
_IELinkClickByIndex () 这个函数实际使用中,如果搭配简单的例子可以直接写出相应的参数,而如果在较为复杂的网页中为了保证正确性最好搭配下面那个函数,
_IELinkGetCollection () 来查找需要的链接.

列举官方帮助例子,基础例子.

#include


$oIE = _IE_Example (“basic”)
$oLinks = _IELinkGetCollection ($oIE)
$iNumLinks = @extended
MsgBox(0, “Link Info”, $iNumLinks & ” links found”)
For $oLink In $oLinks
       MsgBox(0, “Link Info”, $oLink.href)
Next







 

 

 

 

ie.au3在网页中的应用,很大一部分是在针对ie的表单(form)进行操作,ie.au3也提供了相应的函数供我们使用,但是对表单(form)之外的控件或者一些比较特殊无法用和form相关的函数来处理的情况,我们应该怎么做?

本讲就是介绍和讲解解决上面问题的函数,主要有下面几个函数:

———————————————————————————————————————–

_IEGetObjById 返回一个目标变量,对应指定的id or name
_IEGetObjByName 返回一个目标变量,对应指定的id or name 
从帮助里面看 _IEGetObjByName 比 _IEGetObjById多了一个参数,这个参数也是在ie.au3里面经常提到的$i_index,
把所有同id or name 的列一个索引(0,1,2,3…),$i_index表示索引的第几个,以便于我们指定特定的id or name,


函数比较简单 就说明一下官方的例子

; *

; 下面的例子将”line1″内的”innertext”显示在控制台(编辑器的output       F8显示隐藏)
; *
#include 


$oIE = _IE_Example (“basic”)
$oDiv = _IEGetObjById ($oIE, “line1”) ;返回一个id为”line1″的div的指向变量,有了这个变量我们可以用_IEPropertyGet/_IEPropertySet对其进行操作
ConsoleWrite(_IEPropertyGet($oDiv, “innertext”) & @CR)
;~ MsgBox(0,””,_IEPropertyGet($oDiv, “innertext”) & @CR) 个人习惯这种用法.

; *
; 下面的方法等同于 $oForm = _IEFormGetObjByName($oIE, “ExampleForm”)
; *
#include 


$oIE = _IE_Example (“form”)
$oForm = _IEGetObjByName















_IETableGetCollection       返回指定文档内所有/指定的表格的目标变量,指定的表单是以索引顺序来指定的(0,1,2,3…)
_IETableWriteToArray       读出表格内的数据,写入到一个数组,

这两个可以收集网页内的数据,对于数据型的网页,可以通过这两个函数很方便的获取数据.

例子的目的是读取网页内所以表格数据,并且显示出来.

#include 


#include 


$oIE = _IECreate (“http://www.autoit.net.cn/search.php?srchfrom=45000&searchsubmit=yes”)
$oInputs = _IETableGetCollection ($oIE) ;返回指网页内所有表格的目标变量
$iNumTables = @extended  ;文档内所以表格的数量
MsgBox(0, “Table Info”, “There are ” & $iNumTables & ” tables on the page”) 
$i = 0
For $oInput In $oInputs
$table = _IETableGetCollection ($oIE,$i)
$oInput = _IETableWriteToArray ($table) ;读取指定表格内的数据,写入到数组
_ArrayDisplay($oInput, “第”&$i+1&”个表单内容”,0,1) ;显示数组
$i += 1
Next













_IETagNameAllGetCollection       返回指定文档内所有/指定的标记名(Tagname)的目标变量,指定的标记名是以索引顺序来指定的(0,1,2,3…)
_IETagNameGetCollection       返回指定文档内所有特定标记名的目标变量集.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/226564.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午10:36
下一篇 2026年3月16日 下午10:36


相关推荐

  • 原来jdk自带了这么好玩的工具 > JPS使用教程「建议收藏」

    原来jdk自带了这么好玩的工具 > JPS使用教程「建议收藏」jps(JavaVirtualMachineProcessStatusTool)jsp是java提供的一个显示当前所有java进程pid的命令,适合在linux/unix平台上简单察看当前java进程的一些简单情况。很多人都是用过unix系统里的ps命令,这个命令主要是用来显示当前系统的进程情况,有哪些进程以及进程id。jps也是一样,它的作用是显示当前系统的java进程情况及进程id。我们可以通过它来查看我们到底启动了几个java进程(因为每一个java程序都会独占一个java虚拟机实

    2026年1月30日
    5
  • pycharm安装教程(非常详细)_扶梯安装步骤

    pycharm安装教程(非常详细)_扶梯安装步骤Pycharm安装+Anconda环境配置,需要下载软件的请访问​​​​​​(75条消息)Python软件.zip(pycharm安装包Anconda安装包)-Python文档类资源-CSDN文库(免费下载免费下载免费下载免费下载免费下载免费下载),没有安装Ancondade小伙伴可以访问Anconda安装(超详细)写文章-CSDN博客https://mp.csdn.net/mp_blog/creation/editor/120982868…

    2022年8月26日
    7
  • 阈值分割法简述

    阈值分割法简述阈值分割法 nbsp nbsp nbsp nbsp nbsp nbsp nbsp 阈值分割法分为全局阈值法和局部阈值分割法 所谓局部阈值分割法是将原始图像划分成较小的图像 并对每个子图像选取相应的阈值 在阈值分割后 相邻子图像之间的边界处可能产生灰度级的不连续性 因此需用平滑技术进行排除 局部阈值法常用的方法有灰度差直方图法 微分直方图法 局部阈值分割法虽然能改善分割效果 但存在几个缺点 1 每幅子图像的尺寸不能太小 否则统计出的结果无意义

    2026年3月19日
    2
  • HBuilderX 内置终端无法启动或显示空白,如何解决?

    HBuilderX 内置终端无法启动或显示空白,如何解决?

    2026年3月16日
    2
  • Claude 4 API 接入 Cline 完整教程:最强编程AI助手,3分钟配置VSCode神器

    Claude 4 API 接入 Cline 完整教程:最强编程AI助手,3分钟配置VSCode神器

    2026年3月15日
    2
  • mysql自定义函数命名_MySQL自定义函数[通俗易懂]

    mysql自定义函数命名_MySQL自定义函数[通俗易懂]在使用MySQL的过程中,MySQL自带的函数可能完成不了我们的业务需求,这时候就需要自定义函数。自定义函数是一种与存储过程十分相似的过程式数据库对象。它与存储过程一样,都是由SQL语句和过程式语句组成的代码片段,并且可以被应用程序和其他SQL语句调用。自定义函数与存储过程之间存在几点区别:1.自定义函数不能拥有输出参数,这是因为自定义函数自身就是输出参数;而存储过程可以拥有输出参数…

    2025年10月9日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号