Как в QWebEngineView выяснить что видно пользователю?
У меня есть объект QWebEngineView с именем webview. Я загружаю в него html файл и далее я пытаюсь понять какая часть страницы находится в видимом пространстве, то есть видна пользователю. Понятно что само окно webview небольшое, скажем, 800 на 600, а страница очень длинная. Мне надо узнать, какая именно часть страницы прямо сейчас видна пользователю, если он листает её туда-сюда. Я хочу получить информацию например такую: вот сейчас в видимом для пользователя пространстве окна webview у нас есть такие-то тэги, такой-то текст. Или даже прямо кусок HTML который сейчас находится именно в границах окна и предположительно виден пользователю, я его уже потом разберу конструктором, но мне нужно понимать, что вот эта часть сейчас в окне, а не где-то там за окном и до неё пользователь долистает только через десять экранов. Никаких автоматических способов для этого я не нашел. Причем я бы хотел обойтись вообще без JS и использовать только Python. Но даже если использовать JS, например такой, это не работает - он просто больше не видит элементов по координатам центра webview если прокрутить данные хотя бы на один экран вперед. Видит только сразу после загрузки на первом экране и всё.
def on_scroll_changed(self):
scroll_pos = self.webview.page().scrollPosition()
view_size = self.webview.size()
# Рассчитываем координаты центра видимой области
center_x = view_size.width() // 2
center_y = scroll_pos.y() + view_size.height() // 2
js_code = f"""
var element = document.elementFromPoint({center_x}, {center_y});
if (element) {{
var elementData = {{
tagName: element.tagName,
text: element.innerText,
id: element.id,
dataNumber: element.getAttribute("data-number")
}};
elementData;
"""