kob 发表于 2008-12-1 15:30:00

怎么获取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 编辑 ]

kob 发表于 2008-12-1 15:37:55

我用过这样的方式得到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对象。。。

liongodmien 发表于 2008-12-1 15:41:36

获取源码用正则取得,或通过_IEGETOBJBYID()获得

kob 发表于 2008-12-1 16:39:12

用_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)==》将表格写入数组
为什么就得到不到数据的?

liongodmien 发表于 2008-12-1 20:10:38

看了几次,终于还是没弄明白你想得到什么数据!
你不如是把源码贴出来,然后讲明白是想得到什么数据吧...

kob 发表于 2008-12-1 22:32:26

就是例如我一个网页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的数据
如何得到~~~

liongodmien 发表于 2008-12-2 09:34:05


$VAR = stringregexp(_iedocreadhtml($oie), '(?<=id=questionTitle>).+(?=</td>)', 1, 1)
msgbox(0,'',$var)


[ 本帖最后由 liongodmien 于 2008-12-2 09:44 编辑 ]

kob 发表于 2008-12-3 15:23:43

lion的方法用正则取是可行的~~但是由于我正则不太懂。。所以用了操作文档元素的方法。。
就是例如我上面的例子表格的数据是这样取得的
$question = $oIE.document.frames.inner.document.all.questionTitle.outerText

liongodmien 发表于 2008-12-3 16:45:46

原帖由 kob 于 2008-12-3 15:23 发表 http://www.autoitx.com/images/common/back.gif
lion的方法用正则取是可行的~~但是由于我正则不太懂。。所以用了操作文档元素的方法。。
就是例如我上面的例子表格的数据是这样取得的
$question = $oIE.document.frames.inner.document.all.questionTitle.outerT ...
你能用这个得到你想要的数据,表明你是相当的强了

weixin067 发表于 2015-1-12 21:59:08

回复 8# kob


    亲,你的这些方法是com还是DOM?

dhlhmgc 发表于 2015-1-13 02:15:01

本帖最后由 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)

柚子爸爸 发表于 2017-10-4 09:43:35

回复 11# dhlhmgc

    中秋快乐 分享快乐
页: [1]
查看完整版本: 怎么获取iFrame里表格的数据