|
发表于 2009-2-3 22:51:23
|
显示全部楼层
_IEAction($oQuery ,"click")
这个对象变量不对呀!
最好用表单提交
_IEFormSubmit
--------------------------------------------------------------------------------
提交指定表单.
#include <IE.au3>
_IEFormSubmit ( 对象变量[, 等待 = 1] )
参数
对象变量 InternetExplorer.Application,窗口或者框架(frame)对象的对象变量
等待 [可选]: 定义在返回前是否等待窗口加载完毕
0 = 立即返回,不等待窗口加载
1 = (默认) 等待窗口加载完毕然后返回
返回值
成功: 返回 -1
失败: 返回0 并且设置 @ERROR
@Error: 0 ($_IEStatus_Success) = 无错误
1 ($_IEStatus_GeneralError) = 一般性错误
3 ($_IEStatus_InvalidDataType) = 无效数据类型
4 ($_IEStatus_InvalidObjectType) = 无效对象类型
6 ($_IEStatus_LoadWaitTimeout) = 加载等待超时
8 ($_IEStatus_AccessIsDenied) = 访问被拒绝
9 ($_IEStatus_ClientDisconnected) = 客户端断开
@Extended: 包含无效参数数量
备注
对于许多HTML表单用_IEFormSubmit()可能不起作用,因为经常是通过JS脚本获取点击事件来点击提交按钮.在这种情况下你需要模拟一个点击动作代替使用_IEFormSubmit().查看_IEAction()的"click"例子.
同样,某些表单依赖其他表单元素传递的提交按钮值(经常出现在不止一个提交按钮并且用于提交不同的结果).这个函数无法解决,解决方法和上面一样用_IEAction()中的"click"动作.
如果你在使用自动的_IELoadWait遇到问题的时候,请设置 "等待"参数为0,并且从脚本里面调用_IELoadWait,传递到IE对象.
相关
_IEFormReset, _IEFormGetObjByName, _IEFormGetCollection, _IEFormElementGetObjByName, _IEFormElementGetCollection, _IELoadWait
示例
; *******************************************************
; 例子 1 - 打开'form'模式(_IE_Example)的网页例子,填写表单内容然后提交表单
; *******************************************************
;
#include <IE.au3>
$oIE = _IE_Example ("form")
$oForm = _IEFormGetObjByName ($oIE, "ExampleForm")
$oText = _IEFormElementGetObjByName ($oForm, "textExample")
_IEFormElementSetValue ($oText, "Hey! It works!")
_IEFormSubmit ($oForm)
; *******************************************************
; 例子 2 - 定位一个表单元素并且设置它的值.提交一个google搜索请求
; *******************************************************
;
#include <IE.au3>
$oIE = _IECreate ("http://www.google.com")
$oForm = _IEFormGetObjByName ($oIE, "f")
$oQuery = _IEFormElementGetObjByName ($oForm, "q")
_IEFormElementSetValue ($oQuery, "AutoIt IE.au3")
_IEFormSubmit ($oForm)
; *******************************************************
; 例子 3 - 定位一个表单元素并且设置它的值.手动调用_IELoadWait如果默认的_IELoadWait操作问题.
; *******************************************************
;
#include <IE.au3>
$oIE = _IECreate ("http://www.google.com")
$oForm = _IEFormGetObjByName ($oIE, "f")
$oQuery = _IEFormElementGetObjByName ($oForm, "q")
_IEFormElementSetValue ($oQuery, "AutoIt IE.au3")
_IEFormSubmit ($oForm, 0)
_IELoadWait($oIE)
|
|