找回密码
 加入
搜索
查看: 4411|回复: 4

[IE类操作] 如何操作网页框架中的表单?

[复制链接]
发表于 2012-5-2 19:39:25 | 显示全部楼层 |阅读模式
用AU3打开一个网页,这个网页中包含有框架,框架中又含有表单,
我想要操作这个表单,却操作不了,请看代码:
#include <IE.au3>

$oIE = _IECreate(@ScriptDir & "\kuanjia1.htm",0,1,1)

$oFrames = _IEFrameGetCollection($oIE)
$iNumFrames = @extended
MsgBox(32,"提示","框架数量为:"& $iNumFrames)

$oiframe =_IEFrameGetCollection($oIE, 0)          ;返回网页中第一个框架的对象变量
$oForm = _IEFormGetCollection ($oiframe, 0)       ;返回框架中第一个表单的对象变量
$input0 = _IEFormElementGetCollection ($oForm, 0) ;返回表单中第一个表单元素的对象变量
_IEFormElementSetValue($input0, "ddd")            ;自动填写表单

MsgBox(32,"提示", "操作完成!!!")

下面是网页代码(kuanjia1.htm):

<html> 
<head> 
<title>框架试验</title>
</head>

<body bgcolor="#DAA520">
<center>下面是框架</center><br>
<center>
<iframe src="http://www.baidu.com/" width="800" marginwidth="0" height="500" marginheight="0" align="middle" scrolling="no" frameborder="0"></iframe>
</center>
</body> 
</html>

以上代码我用AU3 3361的版本运行,还会弹出一个错误提示,用au3 3390的版本运行就什么错误也不出了,表单还是操作不了
请论坛中的各位老师帮忙看看我的代码是否有问题
发表于 2012-5-3 15:20:48 | 显示全部楼层
试了一下,代码都是可以的。只是对框架为百度网页的有点儿问题“$oiframe =_IEFrameGetCollection($oIE, 0) ” 语句获取不到对象。不知是百度网页的特殊性,还是语句函数问题。换其他网页是行的。
 楼主| 发表于 2012-5-3 17:05:48 | 显示全部楼层
回复 2# shqf

你换什么网页是行的?告诉我一下
发表于 2012-5-4 13:11:37 | 显示全部楼层
我用了_IE_Example没有问题,能取到框架数及框架对象的有关内容。代码如下:
#include <IE.au3>
;$oIE = _IECreate(@ScriptDir & "\kuanjia1.htm")
$oIE = _IE_Example("iframe")
$oFrames = _IEFrameGetCollection($oIE)
$iNumFrames = @extended
For $i = 0 To $iNumFrames - 1
        $oFrame = _IEFrameGetCollection($oIE, $i)
        ;$html = _IEDocReadHTML($oFrame)
        MsgBox(4096, "Frame Info", _IEPropertyGet($oFrame, "locationurl") & @LF & _IEPropertyGet($oFrame, "outerhtml"))
Next
后将kuanjia1.htm的内容改成如下:
<html><head><title>框架试验</title></head>
<center>下面是框架</center><br>
<body bgcolor="#DAA520">
<center>
<IFRAME SRC=file:///c:/1.htm>
<IFRAME SRC=http://www.baidu.com>
</center>
</html>
并在C盘根目录下随便建个文件1.txt,上面的AU3代码中起用$oIE = _IECreate(@ScriptDir & "\kuanjia1.htm"),注释掉此句$oIE = _IE_Example("iframe")后,_IEFrameGetCollection()函数能获取到框架数,但对不是本地的框架内容获取错误,大部分为空.但对网页如http://www.zhijinwang.com/能获取到一点儿内容,但也有怪现象,获取到的框架数很多。
本人觉得是_IEFrameGetCollection()有问题,对不是本地的网页操作有错误。论坛各位达人再测试确定一下?
 楼主| 发表于 2012-5-4 22:05:12 | 显示全部楼层
回复 4# shqf

我也是觉得是_IEFrameGetCollection()有问题,对不是本地的网页操作有错误
我的脚本中必须要使用_IECreate(),并且那个htm文件不能修改它,因为它是某个网站的页面,并不是本地的页面,我只是拿来演示的
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-20 13:35 , Processed in 0.089013 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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