2017-01-27 58 views
0

這裏是我的問題的上下文:我有一個IE窗口打開幾個選項卡(事實上,很多,大約50)。我瀏覽標籤(使用ControlSend「^ i」)並希望獲得當前顯示選項卡的內文。然而,來自_IEPropertyGet($ global_ie,「innertext」)命令的內容每次都是第一個選項卡(IE所創建的那個)的內文。如何從IE中獲取innertextxt在Autoit中

我的問題是:如何獲得當前標籤的內文?

一些限制,我有:

  • 我不能因爲IE窗口做圖形化的東西將是 隱藏
  • 我無法刷新/重新加載選項卡/頁(50個標籤,它結束了與 太多的請求,並通過 網站的抗DDOS BOT)
  • 我無法打開不同的IE瀏覽器的標籤(標籤太多,不知道我的電腦 可以一次處理50周的IE)
  • 被抓

附加信息:

  • 製表符使用Navigate2函數(與參數 「0×1000」)

  • 我通過使用函數ControlSend(..., 凸片導航創建「^ $我)

我是相當新的使用Autoit(和任何自動化工具),所以有可能我沒有聯合國瞭解一些基本的東西。

非常感謝你們!

[從AutoIt的論壇X-POST]

回答

0

我在AutoIt的論壇帖子已經有了答案。這解決了問題。爲了讓活動標籤,我需要使用下面的函數:

Func _IEGetActiveTab() 
Local $hwnd, $i, $title, $oIE 

; get first IE instance 
$oIE = _IEAttach ("", "instance", 1) 

If @error = $_IESTATUS_Success Then 
    ; get window title 
    $hwnd = _IEPropertyGet($oIE, "hwnd") 
    $title = WinGetTitle($hwnd) 

    ;strip off trailing browser text 
    $i = StringInStr($title, ' - ', 0, -1) 
    If $i > 0 Then 
     $title = StringLeft($title, $i - 1) 
    EndIf 

    $oIE = _IEAttach($title, "windowtitle") 
EndIf 

Return $oIE 
EndFunc 

加入一些延誤,並使用_IEPropertyGet($active_tab, "innertext")後,我能夠得到網頁的文本。