1

Тема: AHK: Chrome.ahk console?: Как узнать полную высоту страницы?

Не уверен, что пишу куда надо, если вдруг, то куда?

Хочу через chrome.ahk пролистаться через всю страницу с шагом в 400 вниз. И остановиться тогда, когда долистаюсь до низу.
Вроде как в интернете пишут, что можно сделать как то вот так:


site_height := PageInst.Evaluate("document.body.offsetHeight;").Value ; утверждают, что здесь будет высота всей страницы

scroll_to = 0
Loop
{
	; тут, понятное дело, какой то еще код

	scroll_to += 400
	PageInst.Evaluate("window.scrollTo(0, " . scroll_to . ");")
	if (scroll_to > site_height)
		break ; я долистался до конца страницы и теперь выхожу из цикла
}

Проблема в том, что document.body.offsetHeight по какой то причине выдает не высоту всей страницы (допустим, она длинная, там должно быть не менее 10000 высоты), а высоту отображаемого пространства страницы, которая на взгляд соответствует видимому пространству сайта.

Как мне получить полную высоту страницы? Или просто определить, что я внизу?

2 (изменено: Gh0sTG0, 2023-05-12 10:53:39)

Re: AHK: Chrome.ahk console?: Как узнать полную высоту страницы?

Ну да ну да, у меня все как всегда...
Перерыл разные сайты, написал на форум, открыл очередную ссылку в поисковике...

let scrollHeight = Math.max(
  document.body.scrollHeight, document.documentElement.scrollHeight,
  document.body.offsetHeight, document.documentElement.offsetHeight,
  document.body.clientHeight, document.documentElement.clientHeight
);

alert('Full document height, with scrolled out part: ' + scrollHeight);
height := PageInst.Evaluate("Math.max(document.body.scrollHeight, document.documentElement.scrollHeight, document.body.offsetHeight, document.documentElement.offsetHeight, document.body.clientHeight, document.documentElement.clientHeight);").Value ; типа

Как бы выдает похожее на правильное...