Что нового

Как прочитать текущую страницу в Chrome

astanid

Новичок
Как получить адрес текущей страницы в Chrome чтобы ее прочитать и распарсить ?
Вот так например можно получить адрес из адресной строки, но страница формируется динамически и просто по адресу ее читать бесполезно.
Код:
; Поиск строки адреса и клик по ней
$oElement = _UIA_GetControlTypeElement($oParent, "UIA_EditControlTypeId", "Address and search bar")

_UIA_ElementMouseClick($oElement)
sleep(100)
Send("^c")
$url = ClipGet()
_dbg($url)
 

InnI

AutoIT Гуру
astanid
Получить текст страницы можно так
Код:
#include <UIAutomate.au3>

$oParent = _UIA_GetElementFromHandle(ControlGetHandle("[RegexpTitle:Google Chrome]", "", "Chrome_RenderWidgetHostHWND1"))
$aElements = _UIA_FindAllElements($oParent, "ControlType", $UIA_TextControlTypeId)
ConsoleWrite("Найдено элементов: " & $aElements[0] & @CRLF)
For $i = 1 To $aElements[0]
  ConsoleWrite(_UIA_ElementGetPropertyValue($aElements[$i], "Name") & @CRLF)
Next
Или так
Код:
WinActivate("[RegexpTitle:Google Chrome]")
Send("^a")
Send("^c")
ConsoleWrite(ClipGet() & @CRLF)


Получить код страницы можно так
Код:
WinActivate("[RegexpTitle:Google Chrome]")
Send("^u")
Sleep(300)
Send("^a")
Send("^c")
ConsoleWrite(ClipGet() & @CRLF)


При использовании Send() раскладка клавиатуры должна быть английская.
 
Автор
A

astanid

Новичок
к сожалению, я недостаточно точно выразился :smile: нужен именно код страницы, а не ее текст.
без кода что-то распарсить и найти нужные элементы несколько сложно...
 
Автор
A

astanid

Новичок
прошу прощенья. прочитал невнимательно :(
Код:
WinActivate("[RegexpTitle:Google Chrome]")
Send("^u")
Sleep(500)
Send("^a")
Send("^c")
$html=ClipGet()
ConsoleWrite($html)
Send("^w")

примерно так же медленно как и сохранять страницу на диск :(
более того очень нестабильно работает. страница кода открывается достаточно долго (как будто заново закачивается) - просто пауза плохое решение. нужно как то дождаться загрузки всей страницы с кодом - не могу придумать как это сделать.
 
Верх