xkk2600 发表于 2018-10-22 00:11:58

【已解决】怎么获取DOM下面的节点的值

本帖最后由 xkk2600 于 2018-11-6 11:32 编辑

<div class="shoppingCart-package"data-saleordnum="SG7"data-action-cd="new">
<div class="pakage-topp">
    <p class="name">
      <em name="actionCd">【ok】</em>
      </p>
</div>

</div>
找到这个DOM后

Local $Eles = _IEQuery($oIE,"div",'class="shoppingCart-package"')

然后怎么找到"P"标签中的“【OK】”,初步想法是用正则,不只有有没有更优雅的方法?



nmgwddj 发表于 2018-10-22 09:54:49

http://www.w3school.com.cn/htmldom/prop_tablerow_innerhtml.asp

xkk2600 发表于 2018-10-22 14:36:36

看起来还是正则最方便

wo2china 发表于 2018-10-22 14:39:42

本帖最后由 wo2china 于 2018-10-22 14:41 编辑


;插入JQuery
Func _InsertJQuery($oIE)
      Local $sScript_jQuery = FileRead(@ScriptDir & '\jquery-3.3.1.min.js')

      Local $oHead = _IETagNameGetCollection($oIE, "head", 0)

      $objScript = $oIE.document.createElement('script')
      $objScript.type = 'text/javascript'
      $objScript.language = 'javascript'
      $objScript.text = $sScript_jQuery
      $oHead.appendChild($objScript)

      $oIE.Document.parentWindow.execScript("document.body.jQuery = jQuery;")
      $oIE.Document.parentWindow.execScript("document.body.eval = eval;")

      $ojQuery = $oIE.Document.body.jQuery
      $oEval = $oIE.Document.body.eval

      While Not (IsObj($ojQuery))
                Sleep(100)
      WEnd

      $ojQuery.noConflict()
      Return $ojQuery
EndFunc   ;==>_InsertJQuery

$oIE = _IEAttach("", "instance", 1)
$jq = _InsertJQuery($oIE)

msgbox(0, "", $jq('div.shoppingCart-package em').text())

nmgwddj 发表于 2018-10-22 17:25:12

xkk2600 发表于 2018-10-22 14:36
看起来还是正则最方便
#include <IE.au3>

$oIE = _IECreate(@ScriptDir & '\1.html')

$oElement = _IEGetObjByName($oIE, 'actionCd')
MsgBox(0, '', $oElement.innerHTML)

_IEQuit($oIE)





一句话就可以了,你仔细看 IE.au3 里面的实现,都是使用的这些 DOM 基础方法实现的。可能你不了解,正则终归不是正确的方法。

xkk2600 发表于 2018-11-6 11:32:08

谢谢{:face (396):}
页: [1]
查看完整版本: 【已解决】怎么获取DOM下面的节点的值