找回密码
 加入
搜索
查看: 2004|回复: 5

请教一个IE问题啊

[复制链接]
发表于 2009-1-31 15:51:50 | 显示全部楼层 |阅读模式
事情是这个样子的 想做个网站填表机
$oIE = _IECreate ("A网址")
$oForm = _IEFormGetObjByName ($oIE, "ctlform")
$oQuery = _IEFormElementGetObjByName ($oForm, "__fwd")
_IEAction($oQuery ,"click")

提交完了以后 A网址变为B网址啦啊  
请问怎么反馈$oIE来继续做下去啊
发表于 2009-1-31 17:09:20 | 显示全部楼层
_IEAttach
10字补丁.exe
发表于 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)

发表于 2009-2-5 23:18:01 | 显示全部楼层
原帖由 index_swf 于 2009-2-3 22:51 发表
_IEAction($oQuery ,"click")
这个对象变量不对呀!
...

很遗憾 应该是对的 $oQuery 是表单确定按钮的对象
发表于 2009-3-26 22:47:39 | 显示全部楼层

我也想问这个问题

就是网页跳到下一个页面时。怎样把$oIE 更新为当前的页面。
发表于 2009-3-27 11:33:29 | 显示全部楼层
不管页面跳到那里 只要还在原来的窗口,则还是$oIE
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-15 04:10 , Processed in 0.072892 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表