sakura1528 发表于 2009-1-31 15:51:50

请教一个IE问题啊

事情是这个样子的 想做个网站填表机
$oIE = _IECreate ("A网址")
$oForm = _IEFormGetObjByName ($oIE, "ctlform")
$oQuery = _IEFormElementGetObjByName ($oForm, "__fwd")
_IEAction($oQuery ,"click")

提交完了以后 A网址变为B网址啦啊
请问怎么反馈$oIE来继续做下去啊

sxd 发表于 2009-1-31 17:09:20

_IEAttach
10字补丁.exe

index_swf 发表于 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)

:face (33):

sxd 发表于 2009-2-5 23:18:01

原帖由 index_swf 于 2009-2-3 22:51 发表 http://www.autoitx.com/images/common/back.gif
_IEAction($oQuery ,"click")
这个对象变量不对呀!
...
很遗憾 应该是对的 $oQuery 是表单确定按钮的对象

hh_wzj 发表于 2009-3-26 22:47:39

我也想问这个问题

就是网页跳到下一个页面时。怎样把$oIE 更新为当前的页面。

gooker 发表于 2009-3-27 11:33:29

不管页面跳到那里 只要还在原来的窗口,则还是$oIE
页: [1]
查看完整版本: 请教一个IE问题啊