怎么获取iFrame里表格的数据
怎么获取iFrame里表格的数据$oIE = _IECreate ("http://192.168.1.11/TEST.ASP",0,1,1,0) ==》用java编写调用了4个iFrame$oFrame=_IEFrameGetObjByName ($oIE,"orderList")==》获取名为orderList的iFrame对象
$oTable = _IETableGetCollection ($oFrame,0)==》获取iFrame中的一个表格
$aTableData = _IETableWriteToArray ($oTable)==》将表格写入数组
以上测试未通过,不知道原因再哪,请大家赐教。
上面是以前有人问过的问题,但是得不到解决~~~我的问题和他相识,但是我页面里只有一个iframe,请问如何可以得到这个iframe里的table的数据
<iframe id="inner" src="question.html"></iframe>
而在question.html里有类似这样的表格~~~
<table>
<tr><td><span id="questionTitle">AAAAA</td></tr>
</table>
就是类似这样的结构 请问如何可以得到这个表格里面的数据~~~
[ 本帖最后由 kob 于 2008-12-3 15:24 编辑 ] 我用过这样的方式得到iframe里的text
$oFrames = _IEFrameGetCollection ($oIE)
$iNumFrames = @extended
For $i = 0 to ($iNumFrames - 1)
$oFrame = _IEFrameGetCollection ($oIE, $i)
$text=_IEPropertyGet ($oFrame, "innertext")
ToolTip($text)
Sleep(1000)
Next
这样可以得到表格里所有的文本,但是我需要操作 id="questionTitle"的td里的文本,还有其他TD的文本,而innertext是一个整体,好像操作不了~~~而还有个很奇怪的就是,我用$oIFrame=_IEGetObjByID($oIE,"inner") 得不到这个iframe对象。。。 获取源码用正则取得,或通过_IEGETOBJBYID()获得 用_IEGETOBJBYID()可以取到原文件对象,但是对于iframe的question.html里的对象和数据都好像取不到。。。用正则取得就不懂如何做了。。。~~老大能讲详细点吗?
还有就是像这样
$oIE = _IECreate ("http://192.168.1.11/TEST.ASP",0,1,1,0) ==》用java编写调用了4个iFrame
$oFrame=_IEFrameGetObjByName ($oIE,"orderList")==》获取名为orderList的iFrame对象
$oTable = _IETableGetCollection ($oFrame,0)==》获取iFrame中的一个表格
$aTableData = _IETableWriteToArray ($oTable)==》将表格写入数组
为什么就得到不到数据的? 看了几次,终于还是没弄明白你想得到什么数据!
你不如是把源码贴出来,然后讲明白是想得到什么数据吧... 就是例如我一个网页test.html的内容如下
<html>
<body>
<iframe src="question.html" id="inner"></iframe>
</body>
</html>
而question.html的内容如下
<html>
<body>
<form action="" name="questionForm">
<table ><tr>
<td>问题是</td><td ><span id="questionTitle>$questionTitle(这就是我需要得到的东西)</td>
</tr></table>
</form>
</body>
</html>
question.html是在test的iframe里显示的,但是我在操作test.html时,我需要得到的是question.html里面table里id=questionTtle的数据
如何得到~~~
$VAR = stringregexp(_iedocreadhtml($oie), '(?<=id=questionTitle>).+(?=</td>)', 1, 1)
msgbox(0,'',$var)
[ 本帖最后由 liongodmien 于 2008-12-2 09:44 编辑 ] lion的方法用正则取是可行的~~但是由于我正则不太懂。。所以用了操作文档元素的方法。。
就是例如我上面的例子表格的数据是这样取得的
$question = $oIE.document.frames.inner.document.all.questionTitle.outerText 原帖由 kob 于 2008-12-3 15:23 发表 http://www.autoitx.com/images/common/back.gif
lion的方法用正则取是可行的~~但是由于我正则不太懂。。所以用了操作文档元素的方法。。
就是例如我上面的例子表格的数据是这样取得的
$question = $oIE.document.frames.inner.document.all.questionTitle.outerT ...
你能用这个得到你想要的数据,表明你是相当的强了 回复 8# kob
亲,你的这些方法是com还是DOM? 本帖最后由 dhlhmgc 于 2015-1-13 02:21 编辑
#cs
问题
怎么获取iFrame里表格的数据
; -----------------------main.html-----------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Untitled</title>
</head>
<body>
Hello World!
<hr>
<iframe src="question.html" id="inner"></iframe>
</body>
</html>
; -----------------------question.html-----------------------------
<html>
<body>
<form action="" name="questionForm">
<table>
<tr>
<td>
问题是
</td>
<td>
<span id="questionTitle">
$questionTitle(这就是我需要得到的东西)
</span>
</td>
</tr>
</table>
</form>
</body>
</html>
#ce
; *******************************************************
; 示例 获取iFrame里表格的数据
; *******************************************************
#include <IE.au3>
#include <Array.au3>
dim $customIE_Wait = 150
Local $oIE = _IEAttach("Untitled")
if @Error Then
Local $oIE = _IECreate (@ScriptDir & "\main.html")
Endif
_IELoadWait( $oIE, $customIE_Wait )
;// $strURL= _IEPropertyGet ($oFrame,"locationurl")
;// $strHTML = _IEDocReadHTML ($oFrame)
;// $strTEXT = _IEBodyReadText($oFrame)
dim $oFrame = _IEFrameGetCollection($oIE,0) ;0或正整数-1返回集合,这里用第0个框架对象
dim $oFrameTab = _IETableGetCollection ( $oFrame, 0 ) ;0或正整数-1返回集合,这里用第0个表格对象
;$strTEXT = _IEPropertyGet($oFrameTab,"innertext") ;取表格内的文本
;msgbox( 48, 0, $strTEXT)
$arr = _IETableWriteToArray ( $oFrameTab, False ) ;取数组1
_ArrayDisplay($arr)
$arr = _IETableWriteToArray ( $oFrameTab, True ) ;取数组2
_ArrayDisplay($arr)
回复 11# dhlhmgc
中秋快乐 分享快乐
页:
[1]